【发布时间】:2014-02-05 11:46:07
【问题描述】:
您好,我正在尝试在 tomcat 服务器中使用 jndi 实现 jms 连接器。但我得到了
javax.naming.NamingException: Cannot create resource instance
我不是在 server.xml 文件中编写资源,而是在我的 spring 项目的 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
apache-activemq-4.1.0-incubator.jar
或
activemq-all_5.4.jar commons-loggin.jar
我正在使用 tomcat 8 独立服务器。
【问题讨论】:
标签: tomcat jms tomcat7 activemq jndi