使用嵌入式ActiveMQ JMS进行Tomcat配置

时间:2015-01-27 15:53:22

标签: eclipse tomcat configuration activemq

我有Tomcat 7.0.42和ActiveMQ 5.10,并已将以下资源添加到我的context.xml文件中:

<Resource 
    auth="Container" 
    brokerName="MyActiveMQBrokerXML" 
    description="JMS Connection Factory" 
    factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
    name="jms/ConnectionFactory" 
    type="org.apache.activemq.ActiveMQConnectionFactory" 
    useEmbeddedBroker="true"
    brokerURL="vm://localhost?brokerConfig=xbean:activemq.xml"
    />

当启动Tomcat via是内置启动脚本时,我在控制台输出中得到以下内容。

2015-01-27 09:49:24,064 [localhost-startStop-1] INFO org.apache.activemq.store.kahadb.plist.PListStoreImpl- PListStore:[C:\tomcat\apache-tomcat-7.0.57\bin\acti vemq-data\MyActiveMQBroker\tmp_storage] started 
2015-01-27 09:49:24,068 [localhost-startStop-1] INFO org.apache.activemq.broker.BrokerService- Using Persistence Adapter: KahaDBPersistenceAdapter[C:\tomcat\ap ache-tomcat-7.0.57\bin\activemq-data\MyActiveMQBroker\KahaDB]   
2015-01-27 09:49:24,471 [localhost-startStop-1] INFO org.apache.activemq.store.kahadb.MessageDatabase- KahaDB is version 5 
2015-01-27 09:49:24,491 [localhost-startStop-1] INFO org.apache.activemq.store.kahadb.MessageDatabase- Recovering from the journal ... 
2015-01-27 09:49:24,492 [localhost-startStop-1] INFO org.apache.activemq.store.kahadb.MessageDatabase- Recovery replayed 3 operations from the journal in 0.01 seconds. 
2015-01-27 09:49:24,663 [localhost-startStop-1] INFO org.apache.activemq.broker.BrokerService- Apache ActiveMQ 5.10.0 (MyActiveMQBroker, ID:Jacob-PC-55865-1422 373764525-0:1) is starting 
2015-01-27 09:49:24,707 [localhost-startStop-1] INFO org.apache.activemq.broker.TransportConnector- Connector vm://localhost?brokerConfig=xbean:activemq.xml st arted 
2015-01-27 09:49:24,707 [localhost-startStop-1] INFO org.apache.activemq.broker.BrokerService- Apache ActiveMQ 5.10.0 (MyActiveMQBroker, ID:Jacob-PC-55865-1422 373764525-0:1) started 
2015-01-27 09:49:24,708 [localhost-startStop-1] INFO org.apache.activemq.broker.BrokerService- For help or more information please see: http://activemq.apache. org 
2015-01-27 09:49:24,711 [localhost-startStop-1] ERROR org.apache.activemq.broker.BrokerService- Memory Usage for the Broker (1024 mb) is more than the maximum a vailable for the JVM: 247 mb - resetting to 70% of maximum available: 173 mb 
2015-01-27 09:49:24,728 [localhost-startStop-1] WARN org.apache.activemq.broker.BrokerRegistry- Broker localhost not started so using MyActiveMQBroker instead Jan 27, 2015 9:49:24 AM org.apache.catalina.startup.HostConfig deployDirectory

在我看来,tomcat不是在寻找activemq.xml文件,或者至少没有使用它。如果我通过eclipse启动tomcat,这个确切的配置是有效的,但这对于生产系统来说不是一个可行的选择。

1 个答案:

答案 0 :(得分:0)

我发现,如果要部署到生产环境中,则必须使用文件的绝对路径来使Tomcat查找activemq.xml文件。尽管应该使用相对路径,但我永远都做不到。

brokerURL="vm://localhost?brokerConfig=xbean:activemq.xml"

应该仅在将“ activemq.xml”添加到类路径后才起作用。请注意,“ xbean:file:/some/path/activemq.xml”中存在“ file”。

<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
        BrokerXmlConfig =  xbean:file:/usr/share/apache-tomee-plus-8.0.0-M1/conf/activemq.xml
        ServerUrl       =  tcp://localhost:61616            
</Resource>