2013-07-26 38 views
0

我正在使用JBoss AS 7 Hornetq。我们的独立Java应用程序与队列交互并发送消息。我们已经完成了整个环境的设置,并且工作非常顺利。JBoss AS7 Hornetq - RemoteConenctionFactory查找失败与RoundRobinConnectionLoadBalancingPolicy NotSerializableException

Caused by: java.io.NotSerializableException: org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy 

详细的异常堆栈跟踪低于

javax.naming.NamingException中:突然,一个阳光明媚的日子,我们的独立的应用程序与下面的异常失败无法查找[根异常是java.io .NotSerializableException:org.hornetq.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy] at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36) at org.jboss.naming.remote.protocol .v1.Protocol $ 1.execute(Protocol.java:104) at org.jboss.naming.remote.protocol.v1.RemoteNam ingStoreV1.lookup(RemoteNamingStoreV1.java:79) at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:79) at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext。 java:83) at javax.naming.InitialContext.lookup(Unknown Source) at com.infosys.lbs.publishing.LocationProcessor.postMessageInQueue(LocationProcessor.java:377) at com.infosys.lbs.publishing.LocationProcessor.process (LocationProcessor.java:69) at com.infosys.lbs.publishing.main.Publisher.main(Publisher.java:34) 导致:java.io.NotSerializableException:org.hornetq.api.core.client.loadbalance .RoundRobinConnectionLoadBalancingPolicy at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:891) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019) at org.jboss.marshalling.river。 RiverMarshaller.doWriteObject(RiverMarshaller.java:885) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019) 在org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:998) 在org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885) 在org.jboss.marshalling.AbstractObjectOutput。 writeObject(AbstractObjectOutput.java:62) at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119) at org.jboss.naming.remote.protocol.v1.Protocol $ 1 $ 2.write(Protocol.java:138) at org.jboss.naming。 remote.protocol.v1.WriteUtil.write(WriteUtil.java:61) at org.jboss.naming.remote.protocol.v1.Protocol $ 1.handleServerMessage(Protocol.java:128) at org.jboss.naming.remote .protocol.v1.RemoteNamingServerV1 $ MessageReciever $ 1.run(RemoteNamingServerV1.java:73) at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor $ Worker。运行(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) 引起:发生的异常: in field loadBalancingPolic y in object org.hornetq.jms.client中的字段serverLocator 。HornetQJMSConnectionFactory @ ea074d

异常是怎么回事,当应用程序试图查找连接工厂

QueueConnectionFactory qcf = (QueueConnectionFactory)context.lookup("jms/RemoteConnectionFactory"); 

下面是关于我们如何解决这个问题

回答

1

有解决几乎为零帮助的步骤这个问题。这个异常的网页搜索几乎没有返回。然而,JBoss AS Dev站点上的这个特殊线程让我想起了一个想法:RemoteConnectionFactory is not found when looking up in a remote client

这个线程中提到的场景与我们的不一样。 (在我们的应用程序中,这是第一次也是唯一的查找发生。)这个线程让我想到了一个可能的连接工厂初始化问题。虽然我无法调试或发现问题,但我认为如果我可以重新初始化它,那会有所帮助。

所以我试着用java:jboss/exported/jms/RemoteConnectionFactory查找,正如预期的那样,它失败了一个NamingException。希望这个命名语法(使用java:/)会导致重新初始化,我试着再次用jms/RemoteConnectionFactory查找。和宾果游戏!!!有效!

不幸的是,我们仍然不知道它为什么发生,如果它只是一次性案件!在这里记录下来,以防万一一些致命的灵魂触及到这个问题。

+0

这个问题再次出现,现在没有得到解决与上述技巧(因此,我没有接受答案)。任何JBoss专家,请问? –

+0

遇到类似问题后才刚刚遇到此问题。对于你的具体错误,它看起来像有一个相关的bug,声称在JBoss 7.1.3中被修复https://issues.jboss.org/browse/AS7-4217 也许这可以解决这个问题? –