servicemix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Freeman Fang <freeman.f...@gmail.com>
Subject Re: Large(ish) message issue (CXFBC and Camel)
Date Tue, 18 Jan 2011 03:08:24 GMT

On 2011-1-18, at 上午10:41, Scott Came wrote:

> I am seeing some strange behavior when using Camel to route from a  
> JBI endpoint (cxfbc) to a file using the Camel file component.
>
> Here is the scenario.
>
> I have created a JBI CXFBC service unit with WSDL.  I have also  
> created a Camel service unit, with a very simple route:  it routes  
> from the CXFBC endpoint to a file with a route that looks like this:
>
> <camelContext id="camel" xmlns="http://camel.apache.org/schema/ 
> spring">
>    <route>
>      <from uri="jbi:endpoint:http://it.ojp.gov/global/services/tsc-encounter-router/RouterService/RouterServiceEndpoint

> "/>
>      <to uri="log:gov.ojp.it.TSCEncounterRouterLog?showBody=false"/>
>      <convertBodyTo type="java.lang.String"/>
>      <to uri="file:/Users/scott/Desktop/router-output"/>
>    </route>
>  </camelContext>
>
> I bundle these to SUs into an SA and deploy.  Everything deploys fine.
>
> I then use SOAPUI to send test messages.
>
> If I send a very small message...say, no bigger than a couple  
> hundred bytes, to the RouterServiceEndpoint, everything works fine.   
> I see the log message in the log, and the file gets written to my  
> router-output directory.
>
> However, when I increase the message size beyond a certain point  
> (not sure exactly where it is...somewhere around 2000-3000 bytes) I  
> start getting messages like:
>
> Unexpected end of input block in start tag at [row,col {unknown- 
> source}]: [51,20]
>
> The underlying exception seems to be a  
> com.ctc.wstx.exc.WstcEOFException.
>
> If I try subsequent invocations of the service, I get a similar  
> error, though the referenced place in the stream is often a little  
> different (e.g., [51, 25] or [55, 10]).  So it seems like the parser  
> is getting to a different place in the stream each time before it  
> fails.
>
> I have put TCPMon in the middle and verified that the entire message  
> is getting to the server, although the server side is not closing  
> the connection when the exception occurs.
>
> I am 100% sure the content being sent is valid XML.
>
> Interestingly, if I take out the <to> part of the route to the file  
> component, everything works fine...I get the simple log message  
> (note that I am not logging the body content), and the connection  
> closes in TCPMon.  However, if I switch to logging the body content  
> (i.e., take off the ?showBody=false option), I get similar errors as  
> when I try to write out the file.
This looks like a stream already get consumed issue for me, how about  
you just

How about you just change your router like
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <route  streamCache="true" >
      <from uri="jbi:endpoint:http://it.ojp.gov/global/services/tsc-encounter-router/RouterService/RouterServiceEndpoint

"/>
      <to uri="log:gov.ojp.it.TSCEncounterRouterLog?showBody=false"/>
      <convertBodyTo type="java.lang.String"/>
      <to uri="file:/Users/scott/Desktop/router-output"/>
    </route>
  </camelContext>

Freeman

> I have tried taking out the <convertBodyTo...> element, but that  
> results in a different exception...something about no appropriate  
> converter being found.
>
> It would be somewhat difficult for me to attach a full example, as  
> the content of the large message is somewhat sensitive/proprietary,  
> but I could do that if I absolutely needed to.  I'm hoping there is  
> some simple configuration setting I need to tweak to handle bigger  
> messages (though a 2K or 3K message is by no means large...)
>
> Thanks for any help you can offer.
>
> --Scott


-- 
Freeman Fang

------------------------

FuseSource: http://fusesource.com
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message