2012-12-11 35 views
0

我试图迁移一个JBoss 4.2.2应用程序或6.1.0.FINAL,并且我在配置hornetq时遇到了一些困难。首先,这里是我发现了异常:Hornetq org.jboss.mq.referenceable.ObjectRefAddr异常

12:32:26,133 ERROR [STDERR] javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
12:32:26,133 ERROR [STDERR] java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAddr (no security manager: RMI class loader disabled)]] 
12:32:26,134 ERROR [STDERR] at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1356) 
12:32:26,134 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:819) 
12:32:26,134 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688) 
12:32:26,134 ERROR [STDERR] at javax.naming.InitialContext.lookup(InitialContext.java:392) 
12:32:26,134 ERROR [STDERR] at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:154) 
12:32:26,134 ERROR [STDERR] at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87) 
12:32:26,134 ERROR [STDERR] at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152) 
12:32:26,135 ERROR [STDERR] at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178) 
12:32:26,135 ERROR [STDERR] at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95) 
12:32:26,135 ERROR [STDERR] at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105) 
12:32:26,135 ERROR [STDERR] at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:201) 
12:32:26,135 ERROR [STDERR] at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:187) 
12:32:26,135 ERROR [STDERR] at com.myCompany.util.external.domainObject.patch.JmsTemplateFactory.init(JmsTemplateFactory.java:66) 
12:32:26,135 ERROR [STDERR] at com.myCompany.util.external.domainObject.patch.JmsTemplateFactory.<init>(JmsTemplateFactory.java:43) 
12:32:26,136 ERROR [STDERR] at com.myCompany.util.external.patch.ObjectMessageReceiver.start(ObjectMessageReceiver.java:53) 
12:32:26,136 ERROR [STDERR] at com.myCompany.util.external.patch.ObjectMessageReceiver.run(ObjectMessageReceiver.java:37) 
12:32:26,136 ERROR [STDERR] at org.jboss.resource.work.WorkWrapper.run(WorkWrapper.java:172) 
12:32:26,136 ERROR [STDERR] at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33) 
12:32:26,136 ERROR [STDERR] at org.jboss.threads.CleanupExecutor.execute(CleanupExecutor.java:38) 
12:32:26,136 ERROR [STDERR] at org.jboss.threads.CleanupExecutor.execute(CleanupExecutor.java:38) 
12:32:26,137 ERROR [STDERR] at org.jboss.threads.QueuelessExecutor$Worker.run(QueuelessExecutor.java:614) 
12:32:26,137 ERROR [STDERR] at java.lang.Thread.run(Thread.java:662) 
12:32:26,137 ERROR [STDERR] at org.jboss.threads.JBossThread.run(JBossThread.java:122) 
12:32:26,137 ERROR [STDERR] Caused by: javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
12:32:26,137 ERROR [STDERR] java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAddr (no security manager: RMI class loader disabled)] 
12:32:26,138 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:841) 
12:32:26,138 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688) 
12:32:26,138 ERROR [STDERR] at javax.naming.InitialContext.lookup(InitialContext.java:392) 
12:32:26,138 ERROR [STDERR] at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1350) 
12:32:26,138 ERROR [STDERR] ... 22 more 
12:32:26,139 ERROR [STDERR] Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
12:32:26,139 ERROR [STDERR] java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAddr (no security manager: RMI class loader disabled) 
12:32:26,139 ERROR [STDERR] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:178) 
12:32:26,139 ERROR [STDERR] at org.jboss.ha.framework.server.HARMIServerImpl_Stub.invoke(Unknown Source) 
12:32:26,139 ERROR [STDERR] at org.jboss.ha.framework.interfaces.HARMIClient.invokeRemote(HARMIClient.java:225) 
12:32:26,139 ERROR [STDERR] at org.jboss.ha.framework.interfaces.HARMIClient.invoke(HARMIClient.java:327) 
12:32:26,140 ERROR [STDERR] at $Proxy210.lookup(Unknown Source) 
12:32:26,140 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:728) 
12:32:26,140 ERROR [STDERR] ... 25 more 
12:32:26,140 ERROR [STDERR] Caused by: java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAddr (no security manager: RMI class loader disabled) 
12:32:26,141 ERROR [STDERR] at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:373) 
12:32:26,141 ERROR [STDERR] at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:163) 
12:32:26,141 ERROR [STDERR] at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620) 
12:32:26,141 ERROR [STDERR] at org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91) 
12:32:26,141 ERROR [STDERR] at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247) 
12:32:26,141 ERROR [STDERR] at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197) 
12:32:26,142 ERROR [STDERR] at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574) 
12:32:26,142 ERROR [STDERR] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495) 
12:32:26,142 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) 
12:32:26,142 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
12:32:26,142 ERROR [STDERR] at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) 
12:32:26,142 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) 
12:32:26,143 ERROR [STDERR] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) 
12:32:26,143 ERROR [STDERR] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) 
12:32:26,143 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
12:32:26,143 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
12:32:26,143 ERROR [STDERR] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) 
12:32:26,143 ERROR [STDERR] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) 
12:32:26,144 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
12:32:26,144 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
12:32:26,144 ERROR [STDERR] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) 
12:32:26,144 ERROR [STDERR] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) 
12:32:26,144 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
12:32:26,144 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
12:32:26,144 ERROR [STDERR] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) 
12:32:26,145 ERROR [STDERR] at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:306) 
12:32:26,145 ERROR [STDERR] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:155) 
12:32:26,145 ERROR [STDERR] ... 30 more 

我将hornetq-jms.xml中是非常标准:

<configuration xmlns="urn:hornetq" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd"> 
     <connection-factory name="NettyConnectionFactory"> 
      <connectors> 
       <connector-ref connector-name="netty"/> 
      </connectors> 
      <entries> 
       <entry name="/ConnectionFactory"/> 
       <entry name="/XAConnectionFactory"/> 
      </entries> 
     </connection-factory> 
<!-- JMS destination definitions updated for JBossAS using HornetQ --> 
    <queue name="myQueuet"> 
     <entry name="/queue/myQueue"/> 
    </queue> 
</configuration> 

这里是我的jmsTemplateFactory的相关部分:

public JmsTemplateFactory(String url, String queueName) { 
     this.url = url; 
     this.queueName = queueName; 
     init(); 
    } 

    public void init() { 
     logger.info("\nINIT JMS TEMPLATE...url= " + url + ", queueName: " + queueName); 
     // JndiTemplate 
     JndiTemplate jndiTemplate = new JndiTemplate(); 
     Properties environment = new Properties(); 
     environment.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); 
     environment.put("java.naming.factory.url.pkgs", "org.jnp.interfaces:org.jboss.naming"); 
     environment.put("java.naming.provider.url", url); 
     jndiTemplate.setEnvironment(environment); 

     // JMS Queue Connection Factory 
     JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean(); 
     jndiObjectFactoryBean.setJndiTemplate(jndiTemplate); 
     jndiObjectFactoryBean.setJndiName("UIL2ConnectionFactory"); 

     // JMS Destination 
     JndiObjectFactoryBean jndiObjectFactoryBean2 = new JndiObjectFactoryBean(); 
     jndiObjectFactoryBean2.setJndiTemplate(jndiTemplate); 
     jndiObjectFactoryBean2.setJndiName(queueName); 
     try { 
      jndiObjectFactoryBean.afterPropertiesSet(); 
      jndiObjectFactoryBean2.afterPropertiesSet(); 
     } catch (IllegalArgumentException e) { 
      e.printStackTrace(); 
     } catch (NamingException e) { 
      e.printStackTrace(); 
     } 

     logger.info("Queue name is " + queueName); 

     // JMS Queue Template 
     jmsTemplate = new JmsTemplate102(); 
     jmsTemplate.setConnectionFactory((ConnectionFactory) jndiObjectFactoryBean.getObject()); 
     jmsTemplate.setDefaultDestination((Destination) jndiObjectFactoryBean2.getObject()); 
     jmsTemplate.setReceiveTimeout(30000);   
    } 

    public JmsTemplate102 getJmsTemplate(String url, String queueName) { 
     this.url = url; 
     this.queueName = queueName; 
     init(); 
     return jmsTemplate; 
    } 

任何人有任何想法为什么这个例外正在产生?

回答

1

您正在引用配置中的JBoss MQ对象。修复你的配置和服务器的安装,你应该很好。

+0

因此,我在我的酸性代码上做了一个grep -r,我没有在我的应用程序中引用org.jboss.mq。我也对我的服务器/ all/conf目录做了同样的事情,在那里也没有任何引用。我错过了什么? –

+0

你的踪迹有java.lang.ClassNotFoundException:org.jboss.mq.referenceable.ObjectRefAddr,这是一个JBoss MQ。这是您系统上的配置问题。你应该做适当的服务器配置。也许你应该在你的迁移中使用JBoss7。 –