This is a problem that has been fixed a long time ago.
I see two solutions to your problem:
  1) upgrade to ServiceMix 3.0, the main problem being that the jboss
deployer has not been upgrade :(
  2) compile your ServiceMix 2.0 including the fix in
org.servicemix.components.jms.JmsReceiverComponent
You will find the latest source code at
http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsReceiverComponent.java

Cheers,
Guillaume Nodet

On 4/10/06, Mika <[EMAIL PROTECTED]> wrote:
> 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