JBoss Community

Upgrade JB6.0.0->6.1.0, now JMS ConnectionFactory not bound?

created by Tom Harris in JNDI and Naming - View the full discussion

Our application has been running fine on JBoss 6.0.0-Final for quite a while now. It uses HornetQ via JMS, and it uses Spring 3.0.6 to configure the queue listeners and senders.

 

When we upgraded to JBoss 6.1.0-Final, we are now getting a deployment failure:

 

13:09:44,669 ERROR [STDERR] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jmsConnectionFactory': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: ConnectionFactory not bound

13:09:44,669 ERROR [STDERR]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)

... lots of irrelevant stack frames ...

13:09:44,779 ERROR [STDERR] Caused by: javax.naming.NameNotFoundException: ConnectionFactory not bound

13:09:44,779 ERROR [STDERR]     at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)

... more irrelevant stack frames ...

 

Did something change between 6.0.0 and 6.1.0 that is making the JNDI binding fail? I tried dropping our war files into deploy after the server was fully running, same failure. I looked in the admin-console to find the JMS connection factory and its JNDI bindings, and it shows "java:/ConnectionFactory,java:/XAConnectionFactory". So, I'm not sure what the issue is... Does anyone have some ideas?

 

Contents of hornetq-jms.xml:

 

<configuration xmlns="urn:hornetq"

            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

            xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">

   <connection-factory name="InVMConnectionFactory">

      <xa>true</xa>

        <connectors>

            <connector-ref connector-name="in-vm" />

        </connectors>

        <entries>

            <entry name="java:/ConnectionFactory" />

            <entry name="java:/XAConnectionFactory" />

        </entries>

    </connection-factory>

   <queue name="DLQ">

      <entry name="/queue/DLQ"/>

   </queue>

   <queue name="ExpiryQueue">

      <entry name="/queue/ExpiryQueue"/>

   </queue>

    <queue name="applicationSpecificQueue">

        <entry name="java:/queue/applicationSpecificQueue"/>

    </queue>

</configuration>

 

Spring bean configuration file:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util"

    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"

    xmlns:jms="http://www.springframework.org/schema/jms" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd

http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd

http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"

    default-autowire="byName">

    <jee:jndi-lookup id="jmsConnectionFactory" jndi-name="java:/ConnectionFactory"

        expected-type="javax.jms.ConnectionFactory" lookup-on-startup="true" />

    <bean id="jndiDestinationResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver" />

    <bean id="applicationSpecificQueueListener" class="com.company.ApplicationSpecificQueueListener" />

    <jms:listener-container container-type="default" destination-type="queue"

        destination-resolver="jndiDestinationResolver" connection-factory="jmsConnectionFactory"

        acknowledge="auto" concurrency="1">

        <jms:listener destination="java:/queue/applicationSpecificQueue" ref="applicationSpecificQueueListener" method="onMessage" />

    </jms:listener-container>

</beans>

Reply to this message by going to Community

Start a new discussion in JNDI and Naming at Community