Weblogic 10.3上的Spring 3.0 messageListener-错误“原因:[JMSClientExceptions:055142]国外目标”

| 我试图在战争中在weblogic 10.3上部署Spring 3.0.5 messageListener,但无法使其正常工作。 我在weblogic上创建了一个简单的jms quque,但看起来weblogic认为我正在尝试作为外部客户端进行连接,即使所有内容都是本地的?   [WARN]为目标\'System Module!Test Queue \'设置JMS消息侦听器调用程序失败-尝试恢复。原因:[JMSClientExceptions:055142]外部目标,系统模块!测试队列 这是我的春季xml
   <!--  connection factory -->
    <jee:jndi-lookup id=\"jmsConnectionFactory\"  jndi-name=\"weblogic.jms.ConnectionFactory\" 
   expose-access-context=\"true\" />

    <!--  weblogic jms queue -->    
    <jee:jndi-lookup id=\"testQueue\" jndi-name=\"jms.testQueue\" expose-access-context=\"true\"/>

    <!--  my onMessage listener bean -->    
    <bean id=\"jobNotificationQueueListener\" class=\"com.xxx.component.jms.JobNotificationQueueListener\" />

    <!--  spring container -->
    <bean id=\"jobNotificationQueueContainer\"
    class=\"org.springframework.jms.listener.DefaultMessageListenerContainer\">
        <property name=\"connectionFactory\" ref=\"jmsConnectionFactory\" />
        <property name=\"destination\" ref=\"testQueue\" />
        <property name=\"messageListener\" ref=\"jobNotificationQueueListener\" />
        <property name=\"sessionAcknowledgeModeName\" value=\"AUTO_ACKNOWLEDGE\" />
        <property name=\"sessionTransacted\" value=\"true\" />
    </bean>
有人看过吗?     
已邀请:
此错误消息并不表示您尝试作为\'外部客户端\'进行连接。 WebLogic认为您正在尝试连接到外部目标,这是不同的。 您要设置哪种类型的队列?一些尝试: 1)尝试浏览JNDI树到目的地以确认其位置并确认类型正确 2)确认您已创建JMS服务器并将其定位到相关服务器 3)确认您的队列定位正确 更新:我能够重现并解决此问题。在我的ApplicationContext文件中,我曾经有以下配置:
  <jee:jndi-lookup id=\"eventQueue\" jndi-name=\"${jms.event.queue.name}\" expose-access-context=\"true\"/>
我将其更改为:
  <jee:jndi-lookup id=\"eventQueue\" jndi-name=\"${jms.event.queue.name}\"/>
现在它运行良好,并且不会不断抛出该错误。     
外部JMS在类路径中需要其客户端库(即Websphere MQ将需要mq.jar和另外两个),然后应配置连接工厂类(否则将使用默认的Weblogic),依此类推。 换句话说,这可能是配置问题,而不是编程问题。     

要回复问题请先登录注册