简体   繁体   English

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

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

I've been able to successfully create a weblogic jms client, and I've been able to run it successfully on LAPTOP A, sending messages to my jms queue configured on my company's server: SERVER A. 我已经能够成功创建一个weblogic jms客户端,并且我已经能够在LAPTOP A上成功运行它,将消息发送到我公司服务器上配置的jms队列:SERVER A.

Now, the issue I'm having is, when I run the jms client on another laptop, LAPTOP B, the client stops at the point where it's trying to create a connection from the connection factory: 现在,我遇到的问题是,当我在另一台笔记本电脑LAPTOP B上运行jms客户端时,客户端会在尝试从连接工厂创建连接时停止:

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

While this is happening, when I go back to LAPTOP A and run the jms client, the same thing happens. 当这种情况发生时,当我回到LAPTOP A并运行jms客户端时,同样的事情发生了。

I proceed to terminate the client apps on both laptops, and a couple minutes later, this comes up on the weblogic's server log: 我继续在两台笔记本电脑上终止客户端应用程序,几分钟后,这会出现在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)

And after a while, I'm able to run the jms client from LAPTOP A. But the instant I try again from LAPTOP B, the whole issue I just described begins. 过了一会儿,我就可以从LAPTOP A运行jms客户端。但是当我再次从LAPTOP B尝试时,我刚刚描述的整个问题就开始了。

Both laptops can ping the server and telnet into the server's port. 两台笔记本电脑都可以ping服务器并远程登录到服务器的端口。 In fact, both connect the JMS server fine. 实际上,两者都可以很好地连接JMS服务器。 It's the factory connection creation that brings out this strange issue. 这是工厂连接创建带来了这个奇怪的问题。

I don't understand what's going on. 我不明白发生了什么。 Can anyone help, please? 有人可以帮忙吗?

I figured this out a long time ago but forgot to put up the answer. 我很久以前就想到这个,但忘了提出答案。

The issue was the weblogic jars I was using. 问题是我正在使用的weblogic jar。 You see, one of the laptop was a Windows system and the other was a Linux system, and for some weird reason, the weblogic jars you use for the client differs depending on its host operating system. 你看,其中一台笔记本电脑是Windows系统,另一台是Linux系统,出于某些奇怪的原因,你用于客户端的weblogic jar根据它的主机操作系统而有所不同。

The client was going to run on Windows, so I used these jars: wlclient.jar and wljmsclient.jar. 客户端将在Windows上运行,因此我使用了这些jar:wlclient.jar和wljmsclient.jar。

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

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