【问题标题】:Weblogic JMS Client - Creating connection from connection factory unresponsiveWeblogic JMS 客户端 - 从连接工厂创建连接无响应
【发布时间】:2017-10-06 06:51:29
【问题描述】:

我已经能够成功创建一个 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!

虽然发生这种情况,但当我回到笔记本电脑 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)

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

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

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

【问题讨论】:

    标签: jms weblogic12c


    【解决方案1】:

    我很久以前就知道了,但忘了给出答案。

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

    客户端要在 Windows 上运行,所以我使用了这些 jar:wlclient.jar 和 wljmsclient.jar。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      相关资源
      最近更新 更多