繁体   English   中英

Weblogic JMS客户端 - 从连接工厂创建连接无响应

[英]Weblogic JMS Client - Creating connection from connection factory unresponsive

我已经能够成功创建一个weblogic jms客户端,并且我已经能够在LAPTOP A上成功运行它,将消息发送到我公司服务器上配置的jms队列:SERVER A.

现在,我遇到的问题是,当我在另一台笔记本电脑LAPTOP B上运行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)

过了一会儿,我就可以从LAPTOP A运行jms客户端。但是当我再次从LAPTOP B尝试时,我刚刚描述的整个问题就开始了。

两台笔记本电脑都可以ping服务器并远程登录到服务器的端口。 实际上,两者都可以很好地连接JMS服务器。 这是工厂连接创建带来了这个奇怪的问题。

我不明白发生了什么。 有人可以帮忙吗?

我很久以前就想到这个,但忘了提出答案。

问题是我正在使用的weblogic jar。 你看,其中一台笔记本电脑是Windows系统,另一台是Linux系统,出于某些奇怪的原因,你用于客户端的weblogic jar根据它的主机操作系统而有所不同。

客户端将在Windows上运行,因此我使用了这些jar:wlclient.jar和wljmsclient.jar。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM