Willem: Hopefully this will be addressed at some point? Are you suggesting that Servicemix 4 won't support accessing Camel SUs via JBI?
I really would like to use JBI for my application, to take advantage of the NMR. I don't see how I would do that if I deployed the Camel route in a bundle. I did rebuild the Camel service engine as part of my build from source, so I would expect that everything would pick up the latest version of Camel. Thanks. --Scott -----Original Message----- From: Willem Jiang [mailto:[email protected]] Sent: Thursday, January 27, 2011 4:06 AM To: [email protected] Subject: Re: Large(ish) message issue (CXFBC and Camel) Hi Scott I just realize you were using the old JBI stuff. As you are using ServiceMix 4.x, I suggest you put the camel route into a bundle instead create a Camel Service Engine SU for the route. As the Camel Service Engine also have a lib which has the camel-core and camel-spring, I'm not sure it cause the issue that you met. Willem On 1/27/11 9:49 AM, Scott Came wrote: > Willem (and list): > > I just checked out the smx4 features, nmr, and components source trees > (trunk) today and built all three. Servicemix starts and runs fine. I noted > that the components are dependent on Camel 2.6.0 (at least it appears that > way to me): > > 126:servicemix scott$ find system | grep camel system/org/apache/camel > system/org/apache/camel/camel-core > system/org/apache/camel/camel-core/2.6-SNAPSHOT > system/org/apache/camel/camel-core/2.6-SNAPSHOT/camel-core-2.6-SNAPSHO > T.jar > system/org/apache/camel/camel-spring > system/org/apache/camel/camel-spring/2.6-SNAPSHOT > system/org/apache/camel/camel-spring/2.6-SNAPSHOT/camel-spring-2.6-SNA > PSHOT.jar > system/org/apache/camel/karaf > system/org/apache/camel/karaf/apache-camel > system/org/apache/camel/karaf/apache-camel/2.6-SNAPSHOT > system/org/apache/camel/karaf/apache-camel/2.6-SNAPSHOT/apache-camel-2 > .6-SNAPSHOT-features.xml system/org/apache/servicemix/servicemix-camel > system/org/apache/servicemix/servicemix-camel/2011.01-SNAPSHOT > system/org/apache/servicemix/servicemix-camel/2011.01-SNAPSHOT/service > mix-camel-2011.01-SNAPSHOT.jar > > and... > > karaf@root> osgi:list | grep camel > [ 68] [Active ] [ ] [ ] [ 60] camel-core > (2.6.0.SNAPSHOT) > [ 75] [Active ] [ ] [ ] [ 60] camel-spring > (2.6.0.SNAPSHOT) > karaf@root> osgi:list | grep Camel > [ 169] [Active ] [Created ] [ ] [ 60] Apache ServiceMix :: > Components :: Camel Service Engine (2011.01.0.SNAPSHOT) > karaf@root> > > However, when I deploy my service assembly and send the larger message in, I > see the same behavior as with Camel 2.4 that's build into Fuse ESB > 4.3.0-03-00. Do I need to do anything explicit to have the build include the > latest version of Camel in which this bug is supposedly fixed? > > I also noted that the log messages that Claus suggested I should see are not > showing up (grepping the log for AnnotationTypeConverterLoader and > DefaultTypeConverter returns no lines, and my log level is set at INFO...) > Is this a sign of a problem with my build? I do see the following in the log: > > 17:45:52,176 | INFO | rint Extender: 1 | OsgiSpringCamelContext | > e.camel.impl.DefaultCamelContext 1293 | 68 - org.apache.camel.camel-core - > 2.6.0.SNAPSHOT | Apache Camel 2.6-SNAPSHOT (CamelContext: camel) is starting > 17:45:52,320 | INFO | rint Extender: 1 | Activator | > BundleTypeConverterLoader$Loader 325 | 68 - org.apache.camel.camel-core - > 2.6.0.SNAPSHOT | Found 1 @Converter classes to load > 17:45:52,324 | INFO | rint Extender: 1 | Activator | > BundleTypeConverterLoader$Loader 325 | 68 - org.apache.camel.camel-core - > 2.6.0.SNAPSHOT | Found 1 @Converter classes to load > 17:45:52,380 | INFO | rint Extender: 1 | Activator | > BundleTypeConverterLoader$Loader 325 | 68 - org.apache.camel.camel-core - > 2.6.0.SNAPSHOT | Found 13 @Converter classes to load > > Thanks. > --Scott > > -----Original Message----- > From: Willem Jiang [mailto:[email protected]] > Sent: Monday, January 24, 2011 10:48 PM > To: [email protected] > Subject: Re: Large(ish) message issue (CXFBC and Camel) > > Hi Scott, > > I'm sorry I didn't aware you are using servicemix-camel component (JBI) > version. In this case the upgrading will be more complicated. > You need to updated the servicemix-camel lib with the new version of > camel-spring. > > Fortunately we just cut Camel 2.6.0 and it will be part of Apache ServiceMix > new version very soon. And we are releasing a new version of Fuse ESB 4.3.1 > this week. > > Willem > > On 1/24/11 9:53 AM, Scott Came wrote: >> Willem: >> >> I did my best to understand what you suggested I do, but I'm not confident >> that I'm doing it right. Here is what I did: >> >> -- I shut down servicemix >> >> -- I downloaded the jar >> http://repo.fusesource.com/nexus/content/groups/public-snapshots/org/ >> a >> pache/camel/camel-spring/2.4.0-fuse-SNAPSHOT/camel-spring-2.4.0-fuse- >> 2 >> 0110118.002228-16.jar >> >> -- I extracted the contents of that jar to a temporary directory >> >> -- I extracted the contents of the camel-spring-2.4.0-fuse-02-00, and >> copied its META-INF/MANIFEST.MF file to the META-INF directory of the >> extracted snapshot jar >> >> -- I re-jarred the snapshot >> >> -- I deleted the camel-sprint-2.4.0-fuse-02-00.jar from >> $SMX_HOME/system/org/apache/camel/camel-spring/2.4.0-fuse-02-00 >> >> -- I copied the snapshot jar (with the updated MANIFEST.MF) into >> $SMX_HOME/system/org/apache/camel/camel-spring/2.4.0-fuse-02-00 >> >> -- I deleted my $SMX_HOME/data directory >> >> -- I restarted servicemix >> >> After these steps, servicemix seems to start normally. Osgi:list: >> >> [ 153] [Active ] [Created ] [ ] [ 60] Apache ServiceMix :: >> Components :: Camel Service Engine (2010.02.0.fuse-02-00) >> >> Jbi:list >> >> [Started ] [servicemix-camel ] >> >> However, when I deploy my service assembly, I get a stack trace (see >> attached). >> >> Is this sequence of steps what you intended me to try? Any idea what's >> going wrong and where? >> >> Alternatively...is this version of camel-spring already included in >> some snapshot version of the entire FUSE ESB? If so, would it likely >> work better for me just to check out the ESB shapshot and build it? >> If so, are there instructions somewhere for finding the source >> repository and checking out the snapshot? (I looked at >> http://fusesource.com/forge/projects/fuseesb/source which says to use >> Subversion as such: svn co >> http://fusesource.com/forge/svn/fuseesb/trunk fuseesb; however, when >> I do, I get "svn: URL 'http://fusesource.com/forge/svn/fuseesb/trunk' >> doesn't exist".) >> >> Either way, I think I can offer some value to the project here by testing >> the new camel version, but I'm kinda stuck as a newcomer to the platform on >> some of these issues. Any help you can offer would be much appreciated. >> >> Thanks. >> --Scott >> >> -----Original Message----- >> From: Willem Jiang [mailto:[email protected]] >> Sent: Thursday, January 20, 2011 10:02 PM >> To: [email protected] >> Subject: Re: Large(ish) message issue (CXFBC and Camel) >> >> Yeah, you may need to hack the META-INF/manifest file yourself if you don't >> want to massage the bundle version complains yourself. >> >> The sample way download the snapshot jar and replace the manifest file of >> camel-spring 2.4.0-fuse-02-00.jar, and place the jar into the >> $SMX_HOME/system/org/apache/camel/camel-spring/2.4.0-fuse-01-00, restart the >> servicemix after deleting the $SMX_HOME/data. >> >> Willem >> >> On 1/20/11 8:56 PM, Scott Came wrote: >>> Thanks, Willem, I'll give that a try. >>> >>> Again apologies for my newbie questions, but I couldn't find any docs on >>> this question: If I'm to install this component, what do I need to >>> uninstall first to avoid conflicts? I have read things about not having >>> multiple versions of Camel-* going at the same time... >>> >>> Also I assume I just download this jar and drop it in the deploy >>> directory...correct? >>> >>> Thanks much. >>> --Scott >>> >>> -----Original Message----- >>> From: Willem Jiang [mailto:[email protected]] >>> Sent: Wednesday, January 19, 2011 9:36 PM >>> To: [email protected] >>> Subject: Re: Large(ish) message issue (CXFBC and Camel) >>> >>> On 1/19/11 10:15 PM, Claus Ibsen wrote: >>>> On Wed, Jan 19, 2011 at 2:26 PM, Scott Came<[email protected]> >>>> wrote: >>>>> OK I'm confused... I have Fuse ESB 4.3.0-03-00 installed. From >>>>> the log messages I included in my message yesterday, it looks like >>>>> my install includes Camel Fuse 2.4.0.fuse-02-00. (Reference log >>>>> message:>>>> 16:52:10,680 | INFO | @qtp-727842206-0 | >>>>> DefaultTypeConverter | l.converter.DefaultTypeConverter 397 | 72 >>>>> - org.apache.camel.camel-core - 2.4.0.fuse-02-00 | Loaded 0 type >>>>> converters in 0.003 seconds.) >>>>> >>>>> Do I need Camel Fuse 2.4.0.fuse-03-00 to get the fix, and if so is that >>>>> now available in the Fuse ESB 4.3.0-03-00 download (I just installed ESB >>>>> 4.3.0-03-00 late last week)? >>>>> >>>>> If not, is there something else that's causing the type converters not to >>>>> get loaded? >>>>> >>>> >>>> Its this bug which was fixed dec-20-2010 >>>> http://fusesource.com/issues/browse/MR-392 >>>> >>>> And -03 hasn't been released yet. >>> Maybe you can consider to try out the camel-spring 2.4.0-fuse-SNAPSHOT[1] >>> which has the fix? >>> >>> [1]http://repo.fusesource.com/nexus/content/groups/public-snapshots/ >>> o >>> r >>> g/apache/camel/camel-spring/2.4.0-fuse-SNAPSHOT/camel-spring-2.4.0-f >>> u >>> s >>> e-20110118.002228-16.jar >>> >>>> >>>> >>>>> Thanks for all your help... >>>>> --Scott >>>>> >>>>> -----Original Message----- >>>>> From: Claus Ibsen [mailto:[email protected]] >>>>> Sent: Wednesday, January 19, 2011 5:14 AM >>>>> To: [email protected] >>>>> Subject: Re: Large(ish) message issue (CXFBC and Camel) >>>>> >>>>> On Wed, Jan 19, 2011 at 1:59 PM, Scott Came<[email protected]> >>>>> wrote: >>>>>> Fuse ESB 4.3.0-03-00 is what I'm using...it contains Camel 2.4. If I >>>>>> understand Claus correctly, I need Camel 2.6... >>>>>> >>>>> >>>>> No the bug is fixed in FUSE Camel 2.4. (latest version of FUSE 2.4 >>>>> version). >>>>> At Apache the bug is only to be fixed in the upcoming Camel 2.6 release. >>>>> >>>>> >>>>>> -----Original Message----- >>>>>> From: Willem Jiang [mailto:[email protected]] >>>>>> Sent: Wednesday, January 19, 2011 2:02 AM >>>>>> To: [email protected] >>>>>> Subject: Re: Large(ish) message issue (CXFBC and Camel) >>>>>> >>>>>> Why don't you just download the Fuse ESB 4.3.0-fuse-03-00? >>>>>> You don't need to build the component yourself. >>>>>> >>>>>> On 1/19/11 10:34 AM, Scott Came wrote: >>>>>>> I've actually succeeded in building the 2011.01-SNAPSHOT version of >>>>>>> servicemix-camel that's in SVN. I have the component .jar and >>>>>>> installer .zip in my local maven repository now. >>>>>>> >>>>>>> Any reason why I shouldn't be able to install that in >>>>>>> servicemix-4.3.0-fuse-03-00? Do I just drop the zip file in the deploy >>>>>>> directory? Do I need to be worried about conflicts with the currently >>>>>>> installed version of Camel (i.e., should I uninstall)? >>>>>>> >>>>>>> Excuse the newbie questions...is there a way to deploy this snapshot >>>>>>> via the features mechanism? >>>>>>> >>>>>>> Anyway, if I can get this going I'd be happy to testdrive the >>>>>>> 2011.01-SNAPSHOT build of servicemix-camel... >>>>>>> >>>>>>> Thanks. >>>>>>> --Scott >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Scott Came [mailto:[email protected]] >>>>>>> Sent: Tuesday, January 18, 2011 12:33 PM >>>>>>> To: [email protected] >>>>>>> Subject: RE: Large(ish) message issue (CXFBC and Camel) >>>>>>> >>>>>>> Thanks, Claus. Is there anything I can do in the meantime? Is the fix >>>>>>> in a current Camel build? If so, are there docs on how to update the >>>>>>> Camel components in SM? >>>>>>> >>>>>>> --Scott >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Claus Ibsen [mailto:[email protected]] >>>>>>> Sent: Tuesday, January 18, 2011 7:56 AM >>>>>>> To: [email protected] >>>>>>> Subject: Re: Large(ish) message issue (CXFBC and Camel) >>>>>>> >>>>>>> On Tue, Jan 18, 2011 at 4:54 PM, Claus Ibsen<[email protected]> >>>>>>> wrote: >>>>>>>> On Tue, Jan 18, 2011 at 4:18 PM, Scott Came<[email protected]> >>>>>>>> wrote: >>>>>>>>> Thanks, Claus. >>>>>>>>> >>>>>>>>> I grepped my logs for AnnotationTypeConverterLoader and see a line >>>>>>>>> like this: >>>>>>>>> >>>>>>>>> 16:52:10,678 | INFO | @qtp-727842206-0 | >>>>>>>>> AnnotationTypeConverterLoader | er.AnnotationTypeConverterLoader >>>>>>>>> 66 | 72 - org.apache.camel.camel-core - 2.4.0.fuse-02-00 | >>>>>>>>> Found >>>>>>>>> 3 packages with 0 @Converter classes to load >>>>>>>>> >>>>>>>>> Grepped for DefaultTypeConverter and see this: >>>>>>>>> >>>>>>>>> 16:52:10,680 | INFO | @qtp-727842206-0 | DefaultTypeConverter >>>>>>>>> | l.converter.DefaultTypeConverter 397 | 72 - >>>>>>>>> org.apache.camel.camel-core - 2.4.0.fuse-02-00 | Loaded 0 type >>>>>>>>> converters in 0.003 seconds >>>>>>>>> >>>>>>>>> I'm guessing that's not good. I am running the current release >>>>>>>>> version of FUSE ESB (apache-servicemix-4.3.0-fuse-03-00). I'm not >>>>>>>>> sure what version of Camel is included, but I haven't done anything >>>>>>>>> to update Camel outside of the stock FUSE ESB distro. It looks from >>>>>>>>> the above log message like it's Camel 2.4.0.fuse-02-00. >>>>>>>>> >>>>>>>> >>>>>>>> Yeah it should be fixed in FUSE ESB 4.3.1 which includes Camel >>>>>>>> 2.4.0-fuse-03-00 which has the fix. >>>>>>>> >>>>>>> >>>>>>> Correction, that would be the next FUSE ESB 4.3.0 release. >>>>>>> >>>>>>> I think there is a ESB 4.3.1 planned later this month/next month which >>>>>>> will ship with Camel 2.6 (currently in progress). >>>>>>> >>>>>>> >>>>>>>> From Camel 2.6 onwards we actually now will throw an >>>>>>>> exception on starting Camel if this situation happens again. >>>>>>>> Then it should be much easier for end user to spot something is wrong. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Thanks for your help. >>>>>>>>> --Scott >>>>>>>>> >>>>>>>>> -----Original Message----- >>>>>>>>> From: Claus Ibsen [mailto:[email protected]] >>>>>>>>> Sent: Monday, January 17, 2011 10:05 PM >>>>>>>>> To: [email protected] >>>>>>>>> Subject: Re: Large(ish) message issue (CXFBC and Camel) >>>>>>>>> >>>>>>>>> What versions of the products are you using? SMX / Camel? >>>>>>>>> And how do you startup the SMX container? >>>>>>>>> >>>>>>>>> I think there was a bug when using JBI with SMX 4.x that could lead >>>>>>>>> to Camel not being able to load type converters on startup (race >>>>>>>>> condition when using OSGi). This should be fixed in upcoming Apache >>>>>>>>> SMX 4.3 release and already in the latest FUSE ESB release. >>>>>>>>> >>>>>>>>> You should see something like this at INFO level logged by >>>>>>>>> Camel on startup (requires Camel 2.3 or better) >>>>>>>>> >>>>>>>>> 2011-01-18 07:05:00,519 [main ] INFO >>>>>>>>> AnnotationTypeConverterLoader - Found 3 packages with 19 >>>>>>>>> @Converter classes to load >>>>>>>>> 2011-01-18 07:05:00,567 [main ] INFO >>>>>>>>> DefaultTypeConverter >>>>>>>>> - Loaded 150 type converters in 1.038 seconds >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Jan 18, 2011 at 5:42 AM, Scott Came<[email protected]> >>>>>>>>> wrote: >>>>>>>>>> Hi Freeman, thanks for the suggestion. >>>>>>>>>> >>>>>>>>>> I tried that and am seeing the same results. After consulting the >>>>>>>>>> Camel documentation about stream caching at >>>>>>>>>> http://camel.apache.org/stream-caching.html I tried various flavors >>>>>>>>>> of specifying it (e.g., specifying streamCache="true" on >>>>>>>>>> camelContext and streamCaching="true" and streamCache="true" on >>>>>>>>>> route)...none of those helped. >>>>>>>>>> >>>>>>>>>> I also tried removing the<to> element for the log message, and >>>>>>>>>> that didn't help either. >>>>>>>>>> >>>>>>>>>> It's like in the case of both<to uri="log..."> and<to >>>>>>>>>> uri="file..."> the stream from the jbi: endpoint is getting >>>>>>>>>> cut off after 1000-2000 bytes. Very strange. >>>>>>>>>> >>>>>>>>>> I set the log level to DEBUG, and I get a big nested stack trace at >>>>>>>>>> the expected place, with this as the last exception listed: >>>>>>>>>> >>>>>>>>>> Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected end >>>>>>>>>> of input block in start tag >>>>>>>>>> at [row,col {unknown-source}]: [51,20] >>>>>>>>>> at >>>>>>>>>> com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOB(StreamScanner.java: >>>>>>>>>> 69 >>>>>>>>>> 6) >>>>>>>>>> at >>>>>>>>>> com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner. >>>>>>>>>> ja >>>>>>>>>> v >>>>>>>>>> a >>>>>>>>>> :1 >>>>>>>>>> 062) >>>>>>>>>> at >>>>>>>>>> com.ctc.wstx.sr.StreamScanner.getNextCharFromCurrent(StreamScanner. >>>>>>>>>> j >>>>>>>>>> av >>>>>>>>>> a:807) >>>>>>>>>> at >>>>>>>>>> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader. >>>>>>>>>> ja >>>>>>>>>> va:2892) >>>>>>>>>> at >>>>>>>>>> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java: >>>>>>>>>> 2783) >>>>>>>>>> at >>>>>>>>>> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java: >>>>>>>>>> 1 >>>>>>>>>> 0 >>>>>>>>>> 48 >>>>>>>>>> ) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.soap.util.stax.FragmentStreamReader.nex >>>>>>>>>> t >>>>>>>>>> ( >>>>>>>>>> F >>>>>>>>>> ra >>>>>>>>>> g >>>>>>>>>> m >>>>>>>>>> en >>>>>>>>>> tStreamReader.java:68) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.cxfbc.interceptors.StaxJbiWrapper.next( >>>>>>>>>> S >>>>>>>>>> t >>>>>>>>>> a >>>>>>>>>> xJ >>>>>>>>>> b >>>>>>>>>> i >>>>>>>>>> Wr >>>>>>>>>> apper.java:166) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource.parse(StaxSource.java: >>>>>>>>>> 116) >>>>>>>>>> ... 54 more >>>>>>>>>> >>>>>>>>>> Incidentally, the first exception (top of the stack) is this: >>>>>>>>>> >>>>>>>>>> org.apache.camel.InvalidPayloadException: No body available of type: >>>>>>>>>> java.lang.String but has value: >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207 of type: >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource on: Message: >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207. Caused by: >>>>>>>>>> No type converter available to convert from type: >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource to the required type: >>>>>>>>>> java.lang.String with value >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207. >>>>>>>>>> Exchange[Message: >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207]. Caused by: >>>>>>>>>> [org.apache.camel.NoTypeConversionAvailableException - No >>>>>>>>>> type converter available to convert from type: >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource to the required type: >>>>>>>>>> java.lang.String with value >>>>>>>>>> org.apache.servicemix.soap.util.stax.StaxSource@4f6a4207] >>>>>>>>>> at >>>>>>>>>> org.apache.camel.impl.MessageSupport.getMandatoryBody(Message >>>>>>>>>> S >>>>>>>>>> u >>>>>>>>>> p >>>>>>>>>> po >>>>>>>>>> r >>>>>>>>>> t >>>>>>>>>> .j >>>>>>>>>> ava:103) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.ConvertBodyProcessor.process(Conve >>>>>>>>>> r >>>>>>>>>> t >>>>>>>>>> B >>>>>>>>>> od >>>>>>>>>> y >>>>>>>>>> P >>>>>>>>>> ro >>>>>>>>>> cessor.java:57) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$P >>>>>>>>>> r >>>>>>>>>> o >>>>>>>>>> c >>>>>>>>>> es >>>>>>>>>> s >>>>>>>>>> o >>>>>>>>>> rT >>>>>>>>>> oAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProce >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> o >>>>>>>>>> rH >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> pe >>>>>>>>>> r.java:70) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext >>>>>>>>>> ( >>>>>>>>>> D >>>>>>>>>> e >>>>>>>>>> le >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> AsyncProcessor.java:98) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Del >>>>>>>>>> e >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> A >>>>>>>>>> s >>>>>>>>>> yn >>>>>>>>>> cProcessor.java:89) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process( >>>>>>>>>> I >>>>>>>>>> n >>>>>>>>>> s >>>>>>>>>> tr >>>>>>>>>> u >>>>>>>>>> m >>>>>>>>>> en >>>>>>>>>> tationProcessor.java:68) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProce >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> o >>>>>>>>>> rH >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> pe >>>>>>>>>> r.java:70) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext >>>>>>>>>> ( >>>>>>>>>> D >>>>>>>>>> e >>>>>>>>>> le >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> AsyncProcessor.java:98) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Del >>>>>>>>>> e >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> A >>>>>>>>>> s >>>>>>>>>> yn >>>>>>>>>> cProcessor.java:89) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.interceptor.TraceInterceptor.proce >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> ( >>>>>>>>>> Tr >>>>>>>>>> a >>>>>>>>>> c >>>>>>>>>> eI >>>>>>>>>> nterceptor.java:99) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProce >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> o >>>>>>>>>> rH >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> pe >>>>>>>>>> r.java:70) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext >>>>>>>>>> ( >>>>>>>>>> D >>>>>>>>>> e >>>>>>>>>> le >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> AsyncProcessor.java:98) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Del >>>>>>>>>> e >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> A >>>>>>>>>> s >>>>>>>>>> yn >>>>>>>>>> cProcessor.java:89) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process( >>>>>>>>>> I >>>>>>>>>> n >>>>>>>>>> s >>>>>>>>>> tr >>>>>>>>>> u >>>>>>>>>> m >>>>>>>>>> en >>>>>>>>>> tationProcessor.java:68) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProce >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> o >>>>>>>>>> rH >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> pe >>>>>>>>>> r.java:70) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.processErro >>>>>>>>>> r >>>>>>>>>> H >>>>>>>>>> a >>>>>>>>>> nd >>>>>>>>>> l >>>>>>>>>> e >>>>>>>>>> r( >>>>>>>>>> RedeliveryErrorHandler.java:290) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(Red >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> i >>>>>>>>>> ve >>>>>>>>>> r >>>>>>>>>> y >>>>>>>>>> Er >>>>>>>>>> rorHandler.java:202) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java: >>>>>>>>>> 256) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProce >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> o >>>>>>>>>> rH >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> pe >>>>>>>>>> r.java:70) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:143) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:78) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOf >>>>>>>>>> W >>>>>>>>>> o >>>>>>>>>> r >>>>>>>>>> kP >>>>>>>>>> r >>>>>>>>>> o >>>>>>>>>> ce >>>>>>>>>> ssor.java:99) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProce >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> o >>>>>>>>>> rH >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> pe >>>>>>>>>> r.java:70) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext >>>>>>>>>> ( >>>>>>>>>> D >>>>>>>>>> e >>>>>>>>>> le >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> AsyncProcessor.java:98) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(Del >>>>>>>>>> e >>>>>>>>>> g >>>>>>>>>> a >>>>>>>>>> te >>>>>>>>>> A >>>>>>>>>> s >>>>>>>>>> yn >>>>>>>>>> cProcessor.java:89) >>>>>>>>>> at >>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process( >>>>>>>>>> I >>>>>>>>>> n >>>>>>>>>> s >>>>>>>>>> tr >>>>>>>>>> u >>>>>>>>>> m >>>>>>>>>> en >>>>>>>>>> tationProcessor.java:68) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.camel.CamelProviderEndpoint$1.call(Came >>>>>>>>>> l >>>>>>>>>> P >>>>>>>>>> r >>>>>>>>>> ov >>>>>>>>>> i >>>>>>>>>> d >>>>>>>>>> er >>>>>>>>>> Endpoint.java:109) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.camel.JbiBinding.runWithCamelContextCla >>>>>>>>>> s >>>>>>>>>> s >>>>>>>>>> L >>>>>>>>>> oa >>>>>>>>>> d >>>>>>>>>> e >>>>>>>>>> r( >>>>>>>>>> JbiBinding.java:116) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.camel.CamelProviderEndpoint.handleActiv >>>>>>>>>> e >>>>>>>>>> P >>>>>>>>>> r >>>>>>>>>> ov >>>>>>>>>> i >>>>>>>>>> d >>>>>>>>>> er >>>>>>>>>> Exchange(CamelProviderEndpoint.java:107) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.camel.CamelProviderEndpoint.process(Cam >>>>>>>>>> e >>>>>>>>>> l >>>>>>>>>> P >>>>>>>>>> ro >>>>>>>>>> v >>>>>>>>>> i >>>>>>>>>> de >>>>>>>>>> rEndpoint.java:85) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(Asy >>>>>>>>>> n >>>>>>>>>> c >>>>>>>>>> B >>>>>>>>>> as >>>>>>>>>> e >>>>>>>>>> L >>>>>>>>>> if >>>>>>>>>> eCycle.java:651) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchan >>>>>>>>>> g >>>>>>>>>> e >>>>>>>>>> ( >>>>>>>>>> As >>>>>>>>>> y >>>>>>>>>> n >>>>>>>>>> cB >>>>>>>>>> aseLifeCycle.java:606) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchan >>>>>>>>>> g >>>>>>>>>> e >>>>>>>>>> I >>>>>>>>>> nT >>>>>>>>>> x >>>>>>>>>> ( >>>>>>>>>> As >>>>>>>>>> yncBaseLifeCycle.java:501) >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBa >>>>>>>>>> s >>>>>>>>>> e >>>>>>>>>> L >>>>>>>>>> if >>>>>>>>>> e >>>>>>>>>> C >>>>>>>>>> yc >>>>>>>>>> le.java:370) >>>>>>>>>> at >>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Thread >>>>>>>>>> P >>>>>>>>>> o >>>>>>>>>> o >>>>>>>>>> lE >>>>>>>>>> x >>>>>>>>>> e >>>>>>>>>> cu >>>>>>>>>> tor.java:886) >>>>>>>>>> at >>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. >>>>>>>>>> java:908) >>>>>>>>>> at java.lang.Thread.run(Thread.java:680) >>>>>>>>>> >>>>>>>>>> Any other ideas? >>>>>>>>>> >>>>>>>>>> Thanks. >>>>>>>>>> --Scott >>>>>>>>>> >>>>>>>>>> -----Original Message----- >>>>>>>>>> From: Freeman Fang [mailto:[email protected]] >>>>>>>>>> Sent: Monday, January 17, 2011 7:08 PM >>>>>>>>>> To: [email protected] >>>>>>>>>> Subject: Re: Large(ish) message issue (CXFBC and Camel) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 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-enco >>>>>>>>>>> u >>>>>>>>>>> n >>>>>>>>>>> t >>>>>>>>>>> er >>>>>>>>>>> - r ou t er/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-encou >>>>>>>>>> n >>>>>>>>>> t >>>>>>>>>> e >>>>>>>>>> r- r o ut er/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 >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Claus Ibsen >>>>>>>>> ----------------- >>>>>>>>> FuseSource >>>>>>>>> Email: [email protected] >>>>>>>>> Web: http://fusesource.com >>>>>>>>> Twitter: davsclaus >>>>>>>>> Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: >>>>>>>>> http://www.manning.com/ibsen/ >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Claus Ibsen >>>>>>>> ----------------- >>>>>>>> FuseSource >>>>>>>> Email: [email protected] >>>>>>>> Web: http://fusesource.com >>>>>>>> Twitter: davsclaus >>>>>>>> Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: >>>>>>>> http://www.manning.com/ibsen/ >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Claus Ibsen >>>>>>> ----------------- >>>>>>> FuseSource >>>>>>> Email: [email protected] >>>>>>> Web: http://fusesource.com >>>>>>> Twitter: davsclaus >>>>>>> Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: >>>>>>> http://www.manning.com/ibsen/ >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Willem >>>>>> ---------------------------------- >>>>>> FuseSource >>>>>> Web: http://www.fusesource.com >>>>>> Blog: http://willemjiang.blogspot.com (English) >>>>>> http://jnn.javaeye.com (Chinese) >>>>>> Twitter: willemjiang >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Claus Ibsen >>>>> ----------------- >>>>> FuseSource >>>>> Email: [email protected] >>>>> Web: http://fusesource.com >>>>> Twitter: davsclaus >>>>> Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: >>>>> http://www.manning.com/ibsen/ >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> -- >>> Willem >>> ---------------------------------- >>> FuseSource >>> Web: http://www.fusesource.com >>> Blog: http://willemjiang.blogspot.com (English) >>> http://jnn.javaeye.com (Chinese) >>> Twitter: willemjiang >>> >> >> >> -- >> Willem >> ---------------------------------- >> FuseSource >> Web: http://www.fusesource.com >> Blog: http://willemjiang.blogspot.com (English) >> http://jnn.javaeye.com (Chinese) >> Twitter: willemjiang >> > > > -- > Willem > ---------------------------------- > FuseSource > Web: http://www.fusesource.com > Blog: http://willemjiang.blogspot.com (English) > http://jnn.javaeye.com (Chinese) > Twitter: willemjiang > -- Willem ---------------------------------- FuseSource Web: http://www.fusesource.com Blog: http://willemjiang.blogspot.com (English) http://jnn.javaeye.com (Chinese) Twitter: willemjiang
