You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Raphaël Delaporte <ra...@gmail.com> on 2010/01/19 00:00:06 UTC
Issue with JMS and Camel component
Hi,
I've still have issue with the JMS and Camel component.
I'm running on SMX 3.3.1, and the 2009.02 version for both JMS and Camel.
I've this kind of route which is working (and useless by the way)
<jms:consumer service="esb:jmsConsumer" endpoint="jmsConsumer"
targetService="esb:camelJBI" targetEndpoint="camelJBI"
destinationName="queue/in" connectionFactory="#connectionFactory" />
from("jbi:endpoint:http://esb/camelJBI/camelJBI")
.to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
<jms:provider service="esb:jmsProvider" endpoint="jmsProvider"
destinationName="queue/out" connectionFactory="#connectionFactory"
/>
If I just change my camel route to this (just adding the camel log endpoint)
from("jbi:endpoint:http://esb/camelJBI/camelJBI")
.to("log:myClass.class")
.to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
It does not work anymore ... Is it a bug, or is it a MEP related ?
Thanks.
Raphaël
Re: Issue with JMS and Camel component
Posted by Raphaël Delaporte <ra...@gmail.com>.
Thanks !
Raphaël
2010/1/19 Giampaolo Tranchida <gi...@tranchida.ch>
>
> Using Stream bodies
>
> If you are using a stream type as the message body, you should be aware
> that a stream is only capable of being read once. So if you enable DEBUG
> logging, the body is usually logged and thus read. To deal with this, Camel
> has a streamCaching option that can cache the stream, enabling you to read
> it multiple times.
>
> from("jbi:endpoint:http://foo.bar.org/MyService/MyEndpoint").streamCaching().to("xslt:transform.xsl",
> "bean:doSomething");
>
> From *Camel 1.5* onwards, the stream caching is default enabled, so it is
> not necessary to set the streamCaching() option.
> In *Camel 2.0* we store big input streams (by default, over 64K) in a temp
> file using CachedOutputStream. When you close the input stream, the temp
> file will be deleted.
>
>
>
> Raphaël Delaporte a écrit :
>
> I've this errors
>>
>> INFO - PhaseInterceptorChain - Interceptor has thrown exception,
>> unwinding now
>> org.apache.servicemix.soap.api.Fault: com.ctc.wstx.exc.WstxEOFException:
>> Unexpected EOF in prolog
>> at [row,col {unknown-source}]: [1,0]
>> at
>>
>> org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor.handleMessage(BodyOutInterceptor.java:41)
>> at
>>
>> org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)
>> at
>>
>> org.apache.servicemix.soap.interceptors.xml.StaxOutInterceptor.handleMessage(StaxOutInterceptor.java:50)
>> at
>>
>> org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)
>> at
>>
>> org.apache.servicemix.jms.endpoints.DefaultProviderMarshaler.createMessage(DefaultProviderMarshaler.java:79)
>> at
>>
>> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnlyInSession(JmsProviderEndpoint.java:561)
>> at
>>
>> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint$1.doInJms(JmsProviderEndpoint.java:531)
>> at
>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471)
>> at
>>
>> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnly(JmsProviderEndpoint.java:542)
>> at
>>
>> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.process(JmsProviderEndpoint.java:499)
>> at
>>
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>> at
>>
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>> at
>>
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>> at
>>
>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>> at
>>
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>> at
>>
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>> at
>>
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>> at
>>
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>> at
>>
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>> at
>>
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
>> at [row,col {unknown-source}]: [1,0]
>> at
>> com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:686)
>> at
>> com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134)
>> at
>>
>> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040)
>> at
>> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
>> at
>> org.apache.servicemix.soap.util.stax.StaxUtil.copy(StaxUtil.java:195)
>> at
>>
>> org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor.handleMessage(BodyOutInterceptor.java:39)
>> ... 20 more
>>
>> Raphaël
>>
>>
>> Le 19 janvier 2010 00:00, Raphaël Delaporte <ra...@gmail.com>
>> a
>> écrit :
>>
>>
>>
>>> Hi,
>>>
>>> I've still have issue with the JMS and Camel component.
>>> I'm running on SMX 3.3.1, and the 2009.02 version for both JMS and Camel.
>>>
>>> I've this kind of route which is working (and useless by the way)
>>>
>>> <jms:consumer service="esb:jmsConsumer" endpoint="jmsConsumer"
>>> targetService="esb:camelJBI" targetEndpoint="camelJBI"
>>> destinationName="queue/in" connectionFactory="#connectionFactory"
>>> />
>>>
>>> from("jbi:endpoint:http://esb/camelJBI/camelJBI")
>>> .to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
>>>
>>> <jms:provider service="esb:jmsProvider" endpoint="jmsProvider"
>>> destinationName="queue/out" connectionFactory="#connectionFactory"
>>> />
>>>
>>>
>>> If I just change my camel route to this (just adding the camel log
>>> endpoint)
>>>
>>> from("jbi:endpoint:http://esb/camelJBI/camelJBI")
>>> .to("log:myClass.class")
>>> .to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
>>>
>>> It does not work anymore ... Is it a bug, or is it a MEP related ?
>>>
>>> Thanks.
>>> Raphaël
>>>
>>>
>>>
>>
>>
>>
>
>
Re: Issue with JMS and Camel component
Posted by Giampaolo Tranchida <gi...@tranchida.ch>.
Using Stream bodies
If you are using a stream type as the message body, you should be aware
that a stream is only capable of being read once. So if you enable DEBUG
logging, the body is usually logged and thus read. To deal with this,
Camel has a streamCaching option that can cache the stream, enabling you
to read it multiple times.
from("jbi:endpoint:http://foo.bar.org/MyService/MyEndpoint").streamCaching().to("xslt:transform.xsl", "bean:doSomething");
From *Camel 1.5* onwards, the stream caching is default enabled, so it
is not necessary to set the streamCaching() option.
In *Camel 2.0* we store big input streams (by default, over 64K) in a
temp file using CachedOutputStream. When you close the input stream, the
temp file will be deleted.
Raphaël Delaporte a écrit :
> I've this errors
>
> INFO - PhaseInterceptorChain - Interceptor has thrown exception,
> unwinding now
> org.apache.servicemix.soap.api.Fault: com.ctc.wstx.exc.WstxEOFException:
> Unexpected EOF in prolog
> at [row,col {unknown-source}]: [1,0]
> at
> org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor.handleMessage(BodyOutInterceptor.java:41)
> at
> org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)
> at
> org.apache.servicemix.soap.interceptors.xml.StaxOutInterceptor.handleMessage(StaxOutInterceptor.java:50)
> at
> org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)
> at
> org.apache.servicemix.jms.endpoints.DefaultProviderMarshaler.createMessage(DefaultProviderMarshaler.java:79)
> at
> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnlyInSession(JmsProviderEndpoint.java:561)
> at
> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint$1.doInJms(JmsProviderEndpoint.java:531)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471)
> at
> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnly(JmsProviderEndpoint.java:542)
> at
> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.process(JmsProviderEndpoint.java:499)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
> at [row,col {unknown-source}]: [1,0]
> at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:686)
> at
> com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040)
> at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
> at
> org.apache.servicemix.soap.util.stax.StaxUtil.copy(StaxUtil.java:195)
> at
> org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor.handleMessage(BodyOutInterceptor.java:39)
> ... 20 more
>
> Raphaël
>
>
> Le 19 janvier 2010 00:00, Raphaël Delaporte <ra...@gmail.com> a
> écrit :
>
>
>> Hi,
>>
>> I've still have issue with the JMS and Camel component.
>> I'm running on SMX 3.3.1, and the 2009.02 version for both JMS and Camel.
>>
>> I've this kind of route which is working (and useless by the way)
>>
>> <jms:consumer service="esb:jmsConsumer" endpoint="jmsConsumer"
>> targetService="esb:camelJBI" targetEndpoint="camelJBI"
>> destinationName="queue/in" connectionFactory="#connectionFactory"
>> />
>>
>> from("jbi:endpoint:http://esb/camelJBI/camelJBI")
>> .to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
>>
>> <jms:provider service="esb:jmsProvider" endpoint="jmsProvider"
>> destinationName="queue/out" connectionFactory="#connectionFactory"
>> />
>>
>>
>> If I just change my camel route to this (just adding the camel log
>> endpoint)
>>
>> from("jbi:endpoint:http://esb/camelJBI/camelJBI")
>> .to("log:myClass.class")
>> .to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
>>
>> It does not work anymore ... Is it a bug, or is it a MEP related ?
>>
>> Thanks.
>> Raphaël
>>
>>
>
>
Re: Issue with JMS and Camel component
Posted by Raphaël Delaporte <ra...@gmail.com>.
I've this errors
INFO - PhaseInterceptorChain - Interceptor has thrown exception,
unwinding now
org.apache.servicemix.soap.api.Fault: com.ctc.wstx.exc.WstxEOFException:
Unexpected EOF in prolog
at [row,col {unknown-source}]: [1,0]
at
org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor.handleMessage(BodyOutInterceptor.java:41)
at
org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)
at
org.apache.servicemix.soap.interceptors.xml.StaxOutInterceptor.handleMessage(StaxOutInterceptor.java:50)
at
org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)
at
org.apache.servicemix.jms.endpoints.DefaultProviderMarshaler.createMessage(DefaultProviderMarshaler.java:79)
at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnlyInSession(JmsProviderEndpoint.java:561)
at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint$1.doInJms(JmsProviderEndpoint.java:531)
at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471)
at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnly(JmsProviderEndpoint.java:542)
at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.process(JmsProviderEndpoint.java:499)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col {unknown-source}]: [1,0]
at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:686)
at
com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040)
at
com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
at
org.apache.servicemix.soap.util.stax.StaxUtil.copy(StaxUtil.java:195)
at
org.apache.servicemix.soap.interceptors.xml.BodyOutInterceptor.handleMessage(BodyOutInterceptor.java:39)
... 20 more
Raphaël
Le 19 janvier 2010 00:00, Raphaël Delaporte <ra...@gmail.com> a
écrit :
> Hi,
>
> I've still have issue with the JMS and Camel component.
> I'm running on SMX 3.3.1, and the 2009.02 version for both JMS and Camel.
>
> I've this kind of route which is working (and useless by the way)
>
> <jms:consumer service="esb:jmsConsumer" endpoint="jmsConsumer"
> targetService="esb:camelJBI" targetEndpoint="camelJBI"
> destinationName="queue/in" connectionFactory="#connectionFactory"
> />
>
> from("jbi:endpoint:http://esb/camelJBI/camelJBI")
> .to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
>
> <jms:provider service="esb:jmsProvider" endpoint="jmsProvider"
> destinationName="queue/out" connectionFactory="#connectionFactory"
> />
>
>
> If I just change my camel route to this (just adding the camel log
> endpoint)
>
> from("jbi:endpoint:http://esb/camelJBI/camelJBI")
> .to("log:myClass.class")
> .to("jbi:endpoint:http://esb/jmsProvider/jmsProvider");
>
> It does not work anymore ... Is it a bug, or is it a MEP related ?
>
> Thanks.
> Raphaël
>