2012-11-05 35 views
1

BLUF:我試圖將獨立客戶端連接到位於WebSphere中的Extreme Scale緩存的異常有點令人誤解,所以我在這裏提供瞭解決方案。CORBA.TRANSIENT需要考慮什麼:初始和轉發的IOR無法訪問的vmcid:IBM次要代碼:E07錯誤

我在WebSphere Application Server(WAS)v8.5中成功安裝了WebSphere Extreme Scale(WXS)v8.5(注意:不要試圖在Installation Manager中同時這樣做,否則文件將會丟失 - 分別安裝它們)。我也成功安裝了客戶端和服務器EAR,因此我可以將REST服務用於客戶端,而客戶端又將連接到服務器以訪問緩存。然而,當我試圖運行從java命令行一個獨立的客戶端(或從Eclipse),我得到的例外,如:

java.lang.Throwable: org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 completed: No 
at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1272) 
... 
Caused by: java.lang.Throwable: connect: Address is invalid on local machine, or port is not valid on remote machine 
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:381) 
調用connect在ObjectGridManager時

_client = _ogManager.connect(hostport, null, clientObjectGridURL); 

首先要檢查的是,objectGridClient.properties文件中的主機和端口號是正確的(例如,端口號將與應用程序服務器的端口列表中的BOOTSTRAP端口匹配)。就我而言,這是正確的。使用netstat -an | grep查看是否有人在監聽端口,或者telnet到主機端口。

接下來要檢查的是,防火牆不會妨礙到端口的連接。還有一個來自服務器的客戶端回調,所以你要檢查這不會產生問題。就我而言,這不是一個問題。

回答

6

事情原來是這樣的問題是我配置了WAS,一般安全性打開,所以管理控制檯需要用戶名和密碼。但是,當我調用ObjectGridManager進行連接時,我傳遞一個null作爲第二個參數,而不是傳遞正確的ClientSecurityConfiguration對象。顯然,如果你已經保護了WAS,那麼試圖連接到WAS中的緩存的外部客戶端需要提供安全信息來驗證它們被允許連接。

我選擇使用管理控制檯/ Security/Global Security關閉WAS安全性,並取消選中啓用管理安全性。這允許我通過傳遞null來繼續測試,並推遲打開安全性並添加適當的安全配置設置,並在連接調用中提供適當的對象,直到我們準備在共享環境中進行測試(我的開發環境是自包含的我的筆記本沒有連接到公共網絡)。

我已經包括與他人希望尋找一個解決這個問題的 這個解釋可以在這裏找到它,因爲我是不成功的發現這種替代解釋。

+0

感謝您的分享! :-) –

0

請務必仔細檢查您的存根類是否真的存在並且在部署中可用。聽起來很容易,但那是我的問題...

所以這個錯誤的原因可能是多種多樣的。

相關問題