I have a problem using JMS with ServiceMix in Jboss 4.0.2. I'm using ServiceMix Jboss Deployer 2.0. I have two servicemix xml files I have deployed to JBoss. The one injecting messages into JBossMQ queue works fine but the one trying to receive messages from that same queue is getting javax.jms.IllegalStateException: The MessageConsumer is closed when being deployed. With Hermes I can see that the quartz-sm.xml is successfully putting messages into queue. Can someone point me to the right path is there something wrong with my configuration. Below is both of the -sm.xml and at the bottom a stack trace.

Thanks in advance.

--------- quartz-sm.xml ---------------------

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xbean.org/schemas/spring/1.0";
   xmlns:spring="http://xbean.org/schemas/spring/1.0";
   xmlns:sm="http://servicemix.org/config/1.0";
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://xbean.org/schemas/spring/1.0 ../../conf/spring-beans.xsd http://servicemix.org/config/1.0 ../../conf/servicemix.xsd"
   xmlns:my="http://servicemix.org/demo/";>

   <!-- the JBI container -->
   <sm:container spring:id="jbi" useMBeanServer="false"
       createMBeanServer="false" dumpStats="true" statsInterval="10">

       <sm:activationSpecs>

           <!-- lets kick off a timer  every 5 seconds -->
           <sm:activationSpec componentName="timer" service="my:timer"
               destinationService="my:myJmsSender">
               <sm:component>
                   <bean xmlns="http://xbean.org/schemas/spring/1.0";
class="org.servicemix.components.quartz.QuartzComponent">
                       <property name="triggers">
                           <map>
                               <entry>
                                   <key>
<bean class="org.quartz.SimpleTrigger"> <property name="repeatInterval" value="500000" /> <property name="repeatCount" value="-1" />
                                       </bean>
                                   </key>
                                   <bean
                                       class="org.quartz.JobDetail">
<property name="name" value="My Example Job" /> <property name="group" value="ServiceMix" />
                                   </bean>
                               </entry>
                           </map>
                       </property>
                   </bean>
               </sm:component>
           </sm:activationSpec>


<!-- Route the event to a trace component that just outputs the event to the console -->
           <sm:activationSpec componentName="trace" service="my:trace">
               <sm:component>
                   <bean xmlns="http://xbean.org/schemas/spring/1.0";
class="org.servicemix.components.util.TraceComponent" />
               </sm:component>
           </sm:activationSpec>

<!-- -->
<sm:activationSpec componentName="myJmsSender" service="my:myJmsSender" >
<sm:component><bean class="org.servicemix.components.jms.JmsSenderComponent">
   <property name="template">
     <bean class="org.springframework.jms.core.JmsTemplate102">
       <property name="connectionFactory">
         <ref local="jmsQueueConnectionFactory"/>
       </property>
        <property name="defaultDestination">
           <ref bean="orderQueue"/>
       </property>
<property name="pubSubDomain" value="false"/>
     </bean>
   </property>
 </bean></sm:component>
</sm:activationSpec>
<!-- -->

<sm:activationSpec componentName="myJmsReceiver" service="my:myJmsReceiver" destinationService="my:trace" failIfNoDestinationEndpoint="false"> <sm:component><bean class="org.servicemix.components.jms.JmsReceiverComponent">
   <property name="template">
     <bean class="org.springframework.jms.core.JmsTemplate102">
       <property name="connectionFactory">
         <ref local="jmsQueueConnectionFactory"/>
       </property>
        <property name="defaultDestination">
           <ref bean="orderQueue"/>
       </property>
       <property name="pubSubDomain" value="false"/>
       <!--<property name="receiveTimeout">
           <value>20000</value>
       </property>-->
     </bean>
   </property>
 </bean></sm:component>
</sm:activationSpec>

<!-- -->


       </sm:activationSpecs>
   </sm:container>

<!-- JMS Queue Connection Factory -->
<!-- -->
 <bean id="jmsQueueConnectionFactory"
         class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiTemplate">
     <ref bean="jndiTemplate"/>
   </property>
   <property name="jndiName">
     <value>UIL2ConnectionFactory</value>
   </property>
 </bean>
<!-- -->
<!-- JNDI Template -->
<!-- -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
   <property name="environment">
     <props>
       <prop key="java.naming.factory.initial">
           org.jnp.interfaces.NamingContextFactory
       </prop>
       <prop key="java.naming.provider.url">
           localhost
       </prop>
           <prop key="java.naming.factory.url.pkgs">
               org.jnp.interfaces:org.jboss.naming
</prop> </props>
   </property>
 </bean>
<!-- -->
<!-- JMS Send destination -->

<bean id="orderQueue"
   class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiTemplate">
       <ref bean="jndiTemplate"/>
   </property>
   <property name="jndiName">
       <value>queue/OrderQueue</value>
   </property>
</bean>
</beans>

----------- quartz-sm.xml - END -------------------------------

----------- jms-sm.xml - START -------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xbean.org/schemas/spring/1.0";
   xmlns:spring="http://xbean.org/schemas/spring/1.0";
   xmlns:sm="http://servicemix.org/config/1.0";
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://xbean.org/schemas/spring/1.0 ../../conf/spring-beans.xsd http://servicemix.org/config/1.0 ../../conf/servicemix.xsd"
   xmlns:my="http://servicemix.org/cheese/";>

   <!-- the JBI container -->
   <sm:container spring:id="jbi" useMBeanServer="false"
       createMBeanServer="false" dumpStats="true" statsInterval="10">

       <sm:activationSpecs>

<!-- Route the event to a trace component that just outputs the event to the console -->
           <sm:activationSpec componentName="trace" service="my:trace">
               <sm:component>
                   <bean xmlns="http://xbean.org/schemas/spring/1.0";
class="org.servicemix.components.util.TraceComponent" />
               </sm:component>
           </sm:activationSpec>


<sm:activationSpec componentName="myJmsReceiver" service="my:myJmsReceiver" destinationService="my:trace" failIfNoDestinationEndpoint="false"> <sm:component><bean class="org.servicemix.components.jms.JmsReceiverComponent">
   <property name="template">
     <bean class="org.springframework.jms.core.JmsTemplate102">
       <property name="connectionFactory">
         <ref local="jmsQueueConnectionFactory"/>
       </property>
        <property name="defaultDestination">
           <ref bean="orderQueue"/>
       </property>
       <property name="pubSubDomain" value="false"/>
       <!--<property name="receiveTimeout">
           <value>20000</value>
       </property>-->
     </bean>
   </property>
 </bean></sm:component>
</sm:activationSpec>

<!-- -->


       </sm:activationSpecs>
   </sm:container>

<!-- JMS Queue Connection Factory -->
<!-- -->
 <bean id="jmsQueueConnectionFactory"
         class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiTemplate">
     <ref bean="jndiTemplate"/>
   </property>
   <property name="jndiName">
     <value>UIL2ConnectionFactory</value>
   </property>
 </bean>
<!-- -->
<!-- JNDI Template -->
<!-- -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
   <property name="environment">
     <props>
       <prop key="java.naming.factory.initial">
           org.jnp.interfaces.NamingContextFactory
       </prop>
       <prop key="java.naming.provider.url">
           localhost
       </prop>
           <prop key="java.naming.factory.url.pkgs">
               org.jnp.interfaces:org.jboss.naming
</prop> </props>
   </property>
 </bean>
<!-- -->
<!-- JMS Send destination -->

<bean id="orderQueue"
   class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiTemplate">
       <ref bean="jndiTemplate"/>
   </property>
   <property name="jndiName">
       <value>queue/OrderQueue</value>
   </property>
</bean>

</beans>

----------- jms-sm.xml - END -------------------------

2006-04-09 22:02:14,953 ERROR [org.jboss.deployment.MainDeployer] could not create deployment: file:/C:/Development/liferay/ext/servers/jboss-tomcat/server/default/deploy/jms-sm.xml org.jboss.deployment.DeploymentException: ServiceMix deployer unable to deploy: [EMAIL PROTECTED] { url=file:/C:/Development/liferay/ext/servers/jboss-tomcat/server/default/deploy/jms-sm.xml }
 deployer: [EMAIL PROTECTED]
 status: null
 state: CREATE_DEPLOYER
watch: file:/C:/Development/liferay/ext/servers/jboss-tomcat/server/default/deploy/jms-sm.xml
 altDD: null
 lastDeployed: 1144620134109
 lastModified: 1144620134078
 mbeans:
; - nested throwable: (RuntimeMBeanException: null Cause: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.servicemix.components.jms.JmsReceiverComponent#c1c428' defined in URL [file:/C:/Development/liferay/ext/servers/jboss-tomcat/server/default/deploy/jms-sm.xml]: Initialization of bean failed; nested exception is javax.jms.IllegalStateException: The MessageConsumer is closed) at org.servicemix.jboss.deployment.JBIDeployer.create(JBIDeployer.java:111)
   at org.jboss.deployment.MainDeployer.create(MainDeployer.java:918)
   at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:774)
   at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:738)
   at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
   at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:121)
   at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
   at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
   at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
   at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
   at $Proxy8.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:325) at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:483) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:204) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:215) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:194) Caused by: RuntimeMBeanException: null Cause: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.servicemix.components.jms.JmsReceiverComponent#c1c428' defined in URL [file:/C:/Development/liferay/ext/servers/jboss-tomcat/server/default/deploy/jms-sm.xml]: Initialization of bean failed; nested exception is javax.jms.IllegalStateException: The MessageConsumer is closed at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:162) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:149)
   at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
   at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
   at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.servicemix.jboss.deployment.JBIDeployer.create(JBIDeployer.java:105)
   ... 21 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.servicemix.components.jms.JmsReceiverComponent#c1c428' defined in URL [file:/C:/Development/liferay/ext/servers/jboss-tomcat/server/default/deploy/jms-sm.xml]: Initialization of bean failed; nested exception is javax.jms.IllegalStateException: The MessageConsumer is closed at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:370) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanDefinition(BeanDefinitionValueResolver.java:147) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:96) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveConstructorArguments(AbstractAutowireCapableBeanFactory.java:705) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:611) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:329) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanDefinition(BeanDefinitionValueResolver.java:147) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:96) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:193) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1012) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:823) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:345) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:275) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:318) at org.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:158) at org.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:105) at org.servicemix.jboss.deployment.JBIService.installServiceMixXml(JBIService.java:157)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
   ... 26 more
Caused by: javax.jms.IllegalStateException: The MessageConsumer is closed
at org.jboss.mq.SpyMessageConsumer.setMessageListener(SpyMessageConsumer.java:211) at org.servicemix.components.jms.JmsReceiverComponent.afterPropertiesSet(JmsReceiverComponent.java:54) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1058) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:363)
   ... 50 more



Reply via email to