2010-12-07 81 views
1

使用我創建了一個小型的獨立客戶端:如何從Websphere服務器連接到Weblogic JMS?

weblogic.jndi.WLInitialContextFactory 
t3://weblogic-server:7001 

jms.xyz.jmsXyzCf 
jms/xyz/jmsXyzLogQueue 

它完美的作品。

當試圖從我的websphere服務器運行相同的代碼時,我得到NullPointerException。我明白這是因爲我沒有在Weblogic的CLASSPATH類:

Caused by: java.lang.NullPointerException 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:235) 
at javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:327) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:357) 
at javax.naming.InitialContext.internalInit(InitialContext.java:295) 
at javax.naming.InitialContext.(InitialContext.java:212) 

當我嘗試添加他們,我得到一些「安全」的錯誤

Current Java 2 Security policy reported a potential violation of Java 2 Security Permission. 

java.security.AccessControlException: Access denied (java.lang.RuntimePermission exitVM.0) 
at java.security.AccessController.checkPermission(AccessController.java:108) 
at java.lang.SecurityManager.checkPermission(SecurityManager.java:533) 
at com.ibm.ws.security.core.SecurityManager.checkPermission(SecurityManager.java:211) 
at java.lang.SecurityManager.checkExit(SecurityManager.java:745) 
at java.lang.Runtime.exit(Runtime.java:100) 
at java.lang.System.exit(System.java:297) 

截至上的資源,我試着使用websphere自己的上下文工廠連接:com.ibm.websphere.naming.WsnInitialContextFactory,但當然因爲它不理解t3而失敗。

問題

我怎樣才能連接到從WebSphere在WebLogic JMS?

+0

你得到一個安全權限錯誤的原因是因爲某些東西試圖調用一個System.exit。看看堆棧跟蹤。 exitVM:該目標授予停止Java VM的權限。授予此權限可能會允許惡意代碼通過自動強制虛擬機停止來發起拒絕服務攻擊。 – Manglu 2010-12-10 01:50:55

回答

0

WebSphere並不完全以使用第三方實現來運行系統級功能(如JNDI)而聞名。最後,您將不得不使用WebSphere的類(包括WebSphere的InitialContextFactory實現)。

在WebSphere下運行時,您不需要(實際上,不應該)顯式指定InitialContextFactory實現; WebSphere可以(也應該)自己對其進行總結。

如果我理解正確,您正試圖從WebSphere服務器進程內連接到WebLogic JMS管理對象。我能想到的唯一方法就是獲取WebLogic JMS的實現類並將其添加爲JMS提供者,然後使用JNDI查找它。不過,我很樂意糾正。

相關問題