【问题标题】:javax.naming.NamingException: Cannot create resource instance of ActiveMQConnectionFactoryjavax.naming.NamingException:无法创建 ActiveMQConnectionFactory 的资源实例
【发布时间】:2012-11-22 18:39:06
【问题描述】:

我知道这个问题已经被问过很多次了,但是即使按照所有的答案,我仍然有一个例外。我的配置是:

context.xml

<Context>
     <Resource
      name="jms/ProdConnectionFactory"
      description="Prod JMS Connection Factory"
      auth="Container"
      userName="" 
      password=""
      type="org.apache.activemq.ActiveMQConnectionFactory"
      factory="org.apache.activemq.jndi.JNDIReferenceFactory"
      brokerURL="tcp://jmshost:61616"
      brokerName="ProdActiveMQBroker"
   />
</Context>

web.xml

<web-app>
    <resource-ref>
        <description>Prod Connection Factory</description>
        <res-ref-name>jms/ProdConnectionFactory</res-ref-name>
        <res-type>org.apache.activemq.ActiveMQConnectionFactory</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

Java 代码:

Context context = new InitialContext();
ActiveMQConnectionFactory factory = (ActiveMQConnectionFactory) context.lookup("java:comp/env/jms/ProdConnectionFactory");

我收到的例外是:

javax.naming.NamingException: Cannot create resource instance
        at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
        at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
        at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)

任何人都可以看看,让我知道我错在哪里。谢谢

L

【问题讨论】:

    标签: java jakarta-ee jms jndi


    【解决方案1】:

    原因描述为here:appname.xml 与 context.xml 不同,即它包含在 context.xml 中定义的资源较少。每次重新部署应用程序时都应更新 appname.xml,但重新部署时会出现问题,导致 appname.xml 保持不变。更新 appname.xml 后问题已解决

    L

    【讨论】:

    • 我需要将 context.xml 中定义的资源添加到 appname.xml 中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    相关资源
    最近更新 更多