2013-12-10 67 views
2

我需要連接到與常規的WebSphere JMX:主機輸入參數連接錯誤使用Groovy

def urlRuntime = '/jndi/JMXConnector' 
def urlBase = 'service:jmx:iiop://' + host 

def serviceURL = new JMXServiceURL(urlBase + urlRuntime) 
def h = new Hashtable() 
h.put(Context.SECURITY_PRINCIPAL, username) 
h.put(Context.SECURITY_CREDENTIALS, password) 

h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "com.ibm.websphere.management.remote") 

def server = JMXConnectorFactory.connect(serviceURL,h).MBeanServerConnection 

println server 

當我運行這個例子中,我得到了這個例子:

JSAS1480I: Security is not enabled because the ConfigURL property file is not set. 
Caught: java.io.IOException: Connector not available: Error during resolve 
java.io.IOException: Connector not available: Error during resolve 
    at com.ibm.websphere.management.remote.WsProvider.newJMXConnector(WsProvider.java:155) 
    at KonfiguraceSluzebConfig.main(rob-app-task.groovy:59) 

我的代碼有什麼問題? IAM使用WebSphere版本8.5.5.0

UPDATE

我嘗試添加配置文件:

h.put("com.ibm.CORBA.ConfigURL","ssl.client.props"); 

但例外的是仍然相同。我不知道如何添加有該文件

UPDATE2

那麼一點研究後,我發現我需要添加這種說法女巫常規:

-Dcom.ibm.CORBA.ConfigURL=sas.client.props 
-Dcom.ibm.SSL.ConfigURL=ssl.client.props 

現在異常JSAS1480I解決,但有另一個例外:

Caused by: java.lang.ClassCastException: com.ibm.rmi.javax.rmi.PortableRemoteObject incompatible with javax.rmi.CORBA.PortableRemoteObjectDelegate 

當我刪除此屬性:

h.put(Context.SECURITY_PRINCIPAL, username) 
h.put(Context.SECURITY_CREDENTIALS, password) 

然後用彈出窗口顯示用戶名和密碼。當我輸入有效的用戶名和密碼,然後我們有相同的異常:

java.io.IOException: Connector not available: Error during resolve 
    at com.ibm.websphere.management.remote.WsProvider.newJMXConnector(WsProvider.java:155) 

這真的沒有告訴我問題出在哪裏......好的IBM

誰能幫助我解決這個問題?

PS:在java中這個例子工程

+0

這有幫助嗎? http://stackoverflow.com/questions/13840637/how-to-connect-to-a-websphere-application-server-8-5-message-queue-while-adminis –

+0

nope我真的不想指定一些文件我不知道如何創建和連接器的主要問題 – hudi

+0

也許你需要在你的類路徑管理客戶端jar? http://stackoverflow.com/questions/357095/how-do-you-enable-jmx-in-websphere –

回答

0

當我連接Websphere8.5通過jmx,我遭遇了同樣的情況你的。

我編譯了com.ibm.ws.admin.client_8.5.0,我調試了com.ibm.websphere.management.remote.WsProvider類的源代碼。

當代碼在initialContext.lookup(jndiURL);處運行時,拋出異常!然後我看着異常的細節,我發現異常的情況下:

' Connector not available: Error during resolve' was 'WsnNameService properties [Root exception is org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 completed: No] '

我一直在挖例外IBM minor code: E07 completed: No的情況下是java.net.UnknownHostException

我觀察到我在localhost連接到遠程的jmx,並且目標的主機名不在我的hosts文件中。 我將10.24.16.xx remotehostname添加到hosts文件,然後運行該程序,它的工作原理!

我希望這對你有用!