Hi,
I'm trying to use servicemix to connect to a weblog 8.1 JMS but I get
a Consumer Is Closed Exception.
When running in debug mode, i can see that it successfully connect to
the JMS Server (getting it's name).
Do anyone have an idea of what's wrong? Why i loose the connection to the JMS?
Thanks for help ;o)
Manson Thomas.
Here is some details :
here is the console log :
(Http11Protocol.java:142) - Initialisation de Coyote HTTP/1.1 sur http-8080
( Catalina.java:514) - Initialization processed in 1719 ms
(StandardService.java:472) - Démarrage du service Catalina
(StandardEngine.java:467) - Starting Servlet Engine: Apache Tomcat/5.0.30
(StandardHost.java:787) - XML validation disabled
(XmlBeanDefinitionReader.java:147) - Loading XML bean definitions from
class path resource [jbi.xml]
(AbstractRefreshableApplicationContext.java:90) - Bean factory for
application context
[org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=29493424]:
org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans
[jndiTemplate,jmsConnectionFactory,jmsFactory,jmsDestinationResolver,jmsTemplate,jbi];
root of BeanFactory hierarchy
(AbstractApplicationContext.java:289) - 6 beans defined in application
context
[org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=29493424]
( CollectionFactory.java:61) - JDK 1.4+ collections available
(CollectionFactory.java :66) - Commons Collections 3.x available
(AbstractApplicationContext.java:422) - Unable to locate MessageSource
with name 'messageSource': using default
[EMAIL PROTECTED]
(AbstractApplicationContext.java:444) - Unable to locate
ApplicationEventMulticaster with name 'applicationEventMulticaster':
using default [EMAIL PROTECTED]
(DefaultListableBeanFactory.java:262) - Pre-instantiating singletons
in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans
[jndiTemplate,jmsConnectionFactory,jmsFactory,jmsDestinationResolver,jmsTemplate,jbi];
root of BeanFactory hierarchy]
(AbstractBeanFactory.java:219) - Creating shared instance of singleton
bean 'jndiTemplate'
(AbstractBeanFactory.java:219) - Creating shared instance of singleton
bean 'jmsConnectionFactory'
(AbstractBeanFactory.java:219) - Creating shared instance of singleton
bean 'jmsFactory'
(AbstractBeanFactory.java:219) - Creating shared instance of singleton
bean 'jmsDestinationResolver'
(AbstractBeanFactory.java:219) - Creating shared instance of singleton
bean 'jmsTemplate'
(AbstractBeanFactory.java :219) - Creating shared instance of
singleton bean 'jbi'
(AbstractBeanFactory.java:525) - Destroying singletons in factory
{org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans
[jndiTemplate,jmsConnectionFactory,jmsFactory,jmsDestinationResolver,jmsTemplate,jbi];
root of BeanFactory hierarchy}
(StandardContext.java:4324) - Error listenerStart
(StandardContext.java:4349) - Erreur de démarrage du contexte suite
aux erreurs précédentes
(StandardHost.java:1024) - Create Host deployer for direct deployment
( non-jmx )
(Http11Protocol.java:176) - Démarrage de Coyote HTTP/1.1 sur http-8080
(ChannelSocket.java:363) - JK2: ajp13 listening on /0.0.0.0:8009
(JkMain.java:355) - Jk running ID=0 time=0/297 config=null
(Catalina.java:563) - Server startup in 21203 ms
The stack trace :
2005-08-02 10:48:30 StandardContext[/JBI-Test]Exception lors de
l'envoi de l'évènement contexte initialisé (context initialized) à
l'instance de classe d'écoute (listener)
fr.RS2i.services.DBIListener.SpringListener
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'myJmsReceiver' defined in class path resource
[jbi.xml]: Initialization of bean failed; nested exception is
weblogic.jms.common.IllegalStateException: Consumer is closed
weblogic.jms.common.IllegalStateException: Consumer is closed
at weblogic.jms.client.JMSConsumer.checkClosed(JMSConsumer.java:467)
at weblogic.jms.client.JMSConsumer.setMessageListener(JMSConsumer.java:295)
at
org.servicemix.components.jms.JmsReceiverComponent.afterPropertiesSet(JmsReceiverComponent.java:43)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:966)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:358)
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.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:920)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:731)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:340)
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:920)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:731)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:340)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:223)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:312)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:80)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
at
fr.RS2i.services.DBIListener.SpringListener.contextInitialized(SpringListener.java:12)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3831)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4323)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
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:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
Spring Config :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:foo="http://servicemix.org/cheese/">
<container id="jbi">
<components>
<component id="myJmsReceiver" service="foo:myJmsReceiver"
endpoint="myJmsReceiver"
class="org.servicemix.components.jms.JmsReceiverComponent"
destinationService="foo:trace">
<property name="template">
<ref local="jmsTemplate"/>
</property>
</component>
<component id="jmsTrace" service="foo:trace"
class="org.servicemix.components.groovy.GroovyComponent">
<property name="createOutput" value="false"/>
<property name="scriptText">
<value><![CDATA[
log.info "Received message $inMessage with body: $inMessage.bodyText"
]]></value>
</property>
</component>
</components>
</container>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop
key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://someIp:somePort</prop>
</props>
</property>
</bean>
<!-- Internal JMS Queue Connection Factory -->
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="jndiTemplate"/>
</property>
<property name="jndiName">
<value>weblogic.jms.ConnectionFactory</value>
</property>
</bean>
<bean id="jmsFactory"
class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory">
<ref bean="jmsConnectionFactory"/>
</property>
</bean>
<!-- JMS Destination Resolver -->
<bean id="jmsDestinationResolver"
class="org.springframework.jms.support.destination.JndiDestinationResolver">
<property name="jndiTemplate">
<ref bean="jndiTemplate"/>
</property>
<property name="cache">
<value>true</value>
</property>
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory">
<ref local="jmsFactory"/>
</property>
<property name="destinationResolver">
<ref bean="jmsDestinationResolver"/>
</property>
<property name="pubSubDomain">
<value>true</value>
</property>
<property name="defaultDestinationName">
<value>com.RS2i.infocentre.jms.ICMessagerJMSTopic</value>
</property>
</bean>
</beans>