2017-05-08 121 views
0

我已經能夠成功創建一個weblogic jms客戶端,並且我已經能夠在LAPTOP A上成功運行它,將消息發送到我公司的配置的jms隊列服務器:在服務器A.Weblogic JMS客戶端 - 從連接工廠創建連接無響應

現在,我遇到的問題是,當我在另一臺筆記本電腦,手提電腦去運行JMS客戶端,客戶端停止在它試圖創建連接工廠的連接點:

String queueConnectionFactory = "jms/thefactory" 
QueueConnectionFactory qconFactory = (QueueConnectionFactory) context.lookup(queueConnectionFactory); 
QueueConnection qcon = qconFactory.createQueueConnection(); //application freezes here! 

當發生這種情況時,當我回到LAPTOP A並運行jms客戶端時,會發生同樣的情況。

我繼續終止在兩個筆記本電腦的客戶端應用程序,並在幾分鐘後,這出現在WebLogic的服務器日誌:

java.io.EOFException: Attempt to send message on closed socket. 
java.rmi.MarshalException: IOException while sending; nested exception is: 
     java.io.EOFException: Attempt to send message on closed socket 
     at weblogic.iiop.EndPointImpl.send(EndPointImpl.java:1155) 
     at weblogic.iiop.OutboundResponseImpl.sendThrowable(OutboundResponseImpl.java:221) 
     at weblogic.rmi.internal.BasicServerRef.handleThrowable(BasicServerRef.java:866) 
     at weblogic.rmi.internal.BasicServerRef.postInvoke(BasicServerRef.java:762) 
     at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:542) 
     at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) 
Caused By: java.io.EOFException: Attempt to send message on closed socket 
     at weblogic.iiop.MuxableSocketIIOP.send(MuxableSocketIIOP.java:469) 
     at weblogic.protocol.AsyncMessageSenderImpl.sendOutMsg(AsyncMessageSenderImpl.java:90) 
     at weblogic.protocol.AsyncMessageSenderImpl.send(AsyncMessageSenderImpl.java:46) 
     at weblogic.iiop.MuxableSocketIIOP$IIOPConnection.send(MuxableSocketIIOP.java:582) 
     at weblogic.iiop.EndPointImpl.send(EndPointImpl.java:1148) 
     at weblogic.iiop.OutboundResponseImpl.sendThrowable(OutboundResponseImpl.java:221) 
     at weblogic.rmi.internal.BasicServerRef.handleThrowable(BasicServerRef.java:866) 
     at weblogic.rmi.internal.BasicServerRef.postInvoke(BasicServerRef.java:762) 
     at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:542) 
     at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) 

過了一段時間,我能夠運行JMS來自LAPTOP A的客戶端。但是,當我從LAPTOP B再次嘗試時,我剛剛描述的整個問題就開始了。

兩臺筆記本電腦都可以ping通服務器,並通過遠程登錄到服務器的端口。實際上,兩者都可以很好地連接JMS服務器。這是造成這個奇怪問題的工廠連接創建。

我不明白髮生了什麼事。任何人都可以幫忙嗎?

回答

0

很久以前我想到了這個,但忘了提出答案。

問題是我使用的weblogic jar。你看,其中一臺筆記本電腦是Windows系統,另一臺是Linux系統,出於某種奇怪的原因,用於客戶端的weblogic jar根據其主機操作系統的不同而不同。

客戶端要在Windows上運行,所以我使用了這些jar:wlclient.jar和wljmsclient.jar。