嗨,我想在tomcat服務器中使用jndi實現jms連接器。但我越來越tomcat jms jndi命名異常
javax.naming.NamingException: Cannot create resource instance
我不寫資源在server.xml文件,而不是我寫資源在我的春天項目的context.xml文件。我已經用DataSource測試了以下配置,並且它的工作正常,但是在使用JMS測試它時我正面臨命名異常
以下是我的jndi配置。
的context.xml
<Context crossContext="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jms/ConnectionFactory" auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="tcp://localhost:61616"
brokerName="LocalActiveMQBroker"
userName="admin" password="admin"
useEmbeddedBroker="false"
clientID="TomcatClientID" />
<Resource name="jms/myQueue" auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
description="JMS Queue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="app.jms.queue" />
</Context>
的web.xml
<resource-ref>
<res-ref-name>jms/ConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jms/myQueue</res-ref-name>
<res-type>javax.jms.Queue</res-type>
<res-auth>Container</res-auth>
</resource-ref>
我的java類: -
Context envContext = new InitialContext();
ConnectionFactory connectionFactory = (ConnectionFactory) envContext.lookup("java:/comp/env/jms/ConnectionFactory");
我已經加入我的tomcate_home/lib目錄下的jar
apach電子的ActiveMQ-4.1.0-incubator.jar
或
的ActiveMQ-all_5.4.jar 公地loggin.jar
我使用的Tomcat 8獨立服務器。
嗨馬特,你使用的是哪個版本的tomcat和active mq? – vashishth
我使用的是activemq 5.8.0和Tomcat 6.0.24,因此語法可能會略有不同... – Matt