I am trying to replace ActiveMQ messaging with Qpdi in the  Apache CXF's
 SOAP over JMS demo application without much success.  When I try to run
the client,  i get:  "Cannot consume from a temporary destination created
on another session"

My starting point is the Spring based,  CXF demo that uses configuration
based on:  http://cxf.apache.org/docs/using-the-jmsconfigfeature.html

I have changed that  connection factory and jmsConfig beans to qpid
classes. as below:



>     <bean id="jmsConnectionFactory"
> class="org.apache.qpid.client.AMQConnectionFactory">
>         <constructor-arg index="0"
>            value = "amqp://guest:guest@clientid
> /test?brokerlist='tcp://localhost:5672'"
>               />
>     </bean>
>
>     <bean id="jmsConfig"
> class="org.apache.cxf.transport.jms.JMSConfiguration"
> p:connectionFactory-ref="jmsConnectionFactory"
>  p:targetDestination="XXX"/>


> <jaxws:client id="customerService"
> address="jms://"
> serviceClass="com.example.customerservice.CustomerService">
> <jaxws:features>
> <bean class="org.apache.cxf.feature.LoggingFeature" />
> <bean class="org.apache.cxf.transport.jms.JMSConfigFeature"
> p:jmsConfig-ref="jmsConfig" />
> </jaxws:features>
> </jaxws:client>


The same configuration is used on client and server.

When I run the server it all comes up ok.     The client appears to send
the message to the server, the server sends its response back, but the
client fails to read the response.  Complaining that " Cannot consume from
a temporary destination created on another session"



Any ideas?


This is the client exception that I get:


org.springframework.jms.UncategorizedJmsException: Uncategorized exception
occured during JMS processing; nested exception is javax.jms.JMSException:
Cannot consume from a temporary destination created on another session
at
org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
at
org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)
at
org.springframework.jms.core.JmsTemplate.receiveSelected(JmsTemplate.java:695)
at org.apache.cxf.transport.jms.JMSConduit.sendExchange(JMSConduit.java:229)
at
org.apache.cxf.transport.jms.JMSOutputStream.doClose(JMSOutputStream.java:56)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:192)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:195)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:535)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:465)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:368)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:321)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
at $Proxy47.getCustomersByName(Unknown Source)
at
com.example.customerservice.client.CustomerServiceTester.testCustomerService(CustomerServiceTester.java:49)
at
com.example.customerservice.client.CustomerServiceSpringClient.main(CustomerServiceSpringClient.java:36)
Caused by: javax.jms.JMSException: Cannot consume from a temporary
destination created on another session
at
org.apache.qpid.client.AMQSession.checkTemporaryDestination(AMQSession.java:2392)
at
org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1978)
at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:987)
at
org.springframework.jms.core.JmsTemplate.createConsumer(JmsTemplate.java:993)
at org.springframework.jms.core.JmsTemplate.doReceive(JmsTemplate.java:722)
at org.springframework.jms.core.JmsTemplate$9.doInJms(JmsTemplate.java:697)
at org.springframework.jms.core.JmsTemplate$9.doInJms(JmsTemplate.java:1)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466)



Thanks,

Daryoush

Reply via email to