ActiveMQ作为本地JNDI tomcat ressource

ActiveMQ作为本地JNDI tomcat ressource,activemq,tomcat7,Activemq,Tomcat7,我正在尝试使用本地JNDI将ActiveMQ设置为Tomcat ressource。但是当我将配置文件添加到 代理URI“brokerConfig=xbean:activemq.xml”代理启动时没有任何错误消息 它一直在告诉我: Mrz 30, 2012 10:23:19 AM org.springframework.jms.listener.DefaultMessageListenerContainer refreshConnectionUntilSuccessful Warnung: Co

我正在尝试使用本地JNDI将ActiveMQ设置为Tomcat ressource。但是当我将配置文件添加到 代理URI“brokerConfig=xbean:activemq.xml”代理启动时没有任何错误消息

它一直在告诉我:

Mrz 30, 2012 10:23:19 AM org.springframework.jms.listener.DefaultMessageListenerContainer refreshConnectionUntilSuccessful
Warnung: Could not refresh JMS Connection for destination 'FOO.QUEUE' - retrying in 5000 ms. Cause: Could not create Transport. Reason: java.io.IOException: Could not load xbean factory:java.lang.NoClassDefFoundError: Could not initialize class org.apache.activemq.xbean.XBeanBrokerFactory
我使用了中的默认配置,它位于src文件夹的根目录中。 我正在使用“activemq-all_5.4.3.jar”

“WebContent\META-INF”中的My web.xml


JMS连接
jms/连接工厂
org.apache.activemq.ActiveMQConnectionFactory
容器
可分享
jms/FooQueue
javax.jms.Queue
容器
“WebContent\WEB-INF”中的My applicationContext.xml


“WebContent\META-INF”中的My context.xml


对我来说,它看起来像是一个类路径错误。 您的类路径中有xbean-spring-x.x.jar吗?
如果没有,也从activemq发行版复制此文件,并将其放在应用程序服务器类路径中。

对我来说,它看起来像是类路径错误。 您的类路径中有xbean-spring-x.x.jar吗?
如果没有,也从activemq发行版复制此文件,并将其放入应用程序服务器类路径。

我正在尝试运行上述示例。Ref:-但我正在获取org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是JMS处理过程中发生的未分类异常;嵌套异常为javax.jms.JMSException:无法创建传输。原因:org.springframework.beans.factory.BeanDefinitionStoreException:IOException解析来自类路径资源[conf/activemq.XML]的XML文档;我正在尝试运行上面的示例。Ref:-但我正在获取org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是JMS处理过程中发生的未分类异常;嵌套异常为javax.jms.JMSException:无法创建传输。原因:org.springframework.beans.factory.BeanDefinitionStoreException:IOException解析来自类路径资源[conf/activemq.XML]的XML文档;
<resource-ref>
    <description>JMS Connection</description>
    <res-ref-name>jms/ConnectionFactory</res-ref-name>
    <res-type>org.apache.activemq.ActiveMQConnectionFactory</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

<resource-ref>
    <res-ref-name>jms/FooQueue</res-ref-name>
    <res-type>javax.jms.Queue</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
<jee:jndi-lookup id="fooQueue"
    jndi-name="java:comp/env/jms/FooQueue"
    cache="true"
    resource-ref="true"
    lookup-on-startup="true"
    expected-type="org.apache.activemq.command.ActiveMQQueue"
    proxy-interface="javax.jms.Queue" />


<bean id="singleConnectionFactory"
    class="org.springframework.jms.connection.SingleConnectionFactory"
    p:targetConnectionFactory-ref="connectionFactory"/>

<bean id="jmsTemplate" 
    class="org.springframework.jms.core.JmsTemplate"
    p:connectionFactory-ref="singleConnectionFactory" 
    p:defaultDestination-ref="fooQueue"/>

<bean id="messageSenderService" 
    class="by2.server.JmsMessageSenderService" 
    p:jmsTemplate-ref="jmsTemplate" /> 

<bean id="jmsMessageDelegate" 
    class="by2.server.JmsMessageDelegate" />

 <bean id="myMessageListener"
    class="org.springframework.jms.listener.adapter.MessageListenerAdapter" 
    p:delegate-ref="jmsMessageDelegate" 
    p:defaultListenerMethod="handleMessage">
</bean>

<jms:listener-container
    container-type="default" 
    connection-factory="singleConnectionFactory"
    acknowledge="auto">
        <jms:listener destination="FOO.QUEUE" ref="myMessageListener" />
</jms:listener-container>
<Context reloadable="true">
    <Resource auth="Container" name="jms/ConnectionFactory"
        type="org.apache.activemq.ActiveMQConnectionFactory" description="JMS Connection Factory"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="vm://localhost?brokerConfig=xbean:activemq.xml"
        brokerName="FooBroker" />

    <Resource auth="Container" name="jms/FooQueue"
        type="org.apache.activemq.command.ActiveMQQueue" description="JMS queue"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="FOO.QUEUE" />
</Context>