Maybe its related to streams?
http://camel.apache.org/why-is-my-message-body-empty.html

On Wed, Aug 21, 2013 at 9:30 AM, clarkcb <[email protected]> wrote:
> Hello,
>
> I am trying to use a remote soap service via camel, and I'm at the point now
> where I can successfully access the service running from inside my IDE
> (IntelliJ IDEA), but when I try to run the the jar generated via "maven
> clean install" I get a NullPointerException when trying to access the
> unmarshalled response object (called from a timer consumer endpoint defined
> in a class called ProgramRouteBuilder). Here's the exception stack trace:
>
> 23:50:08.902 [Camel (camel) thread #1 - timer://programTimer] WARN
> o.a.c.component.timer.TimerConsumer - Error processing exchange.
> Exchange[Message: [Body is null]]. Caused by:
> [java.lang.NullPointerException - null]
> java.lang.NullPointerException: null
>         at
> com.mycompany.myprogram.ProgramRouteBuilder$$anon$1.process(ProgramRouteBuilder.scala:110)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:120)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:292)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at 
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:115)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:134)
> ~[myprogram-1.0-SNAPSHOT.jar:na]
>         at
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:63)
> [myprogram-1.0-SNAPSHOT.jar:na]
>         at java.util.TimerThread.mainLoop(Timer.java:512) [na:1.6.0_33]
>         at java.util.TimerThread.run(Timer.java:462) [na:1.6.0_33]
>
> The failure seems to occur during unmarshalling, because I have an incoming
> logging interceptor and it logs the expected soap xml response before
> unmarshalling. It's only when I try to access the unmarshalled object that I
> discover it is null. By the way, at first I thought it was the interceptor
> causing the problem, but if I remove the interceptors from the endpoint
> definition I still have the problem.
>
> As I said, it works when I run inside IDEA, so I suspect it is a maven
> dependency-related issue, and playing around with adding transformers to
> maven shade has yielded some different results, but never success. Here are
> transformers I currently have defined for the maven shade plugin:
>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
>     <mainClass>com.mycompany.myprogram.RemoteServiceAccessor</mainClass>
>     <manifestEntries>
>         <Class-Path>.</Class-Path>
>     </manifestEntries>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
>     <resource>META-INF/spring.handlers</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
>     <resource>META-INF/spring.schemas</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
>     <resource>META-INF/services/com.sun.tools.xjc.Plugin</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
>     <resource>META-INF/cxf/cxf.extension</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
>     <resource>META-INF/extensions.xml</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
>     <resource>META-INF/cxf/extensions.xml</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
>     <resource>META-INF/cxf/bus-extensions.txt</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
>     <resource>META-INF/cxf/bus-extensions.xml</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
>     <resource>META-INF/wsdl.plugin.xml</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
>     <resource>META-INF/tools.service.validator.xml</resource>
> </transformer>
> <transformer
> implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
>     <resource>META-INF/cxf/java2wsbeans.xml</resource>
> </transformer>
>
> I've tried generating project templates from various archetypes (e.g.
> camel-cxf-contract-first, servicemix-osgi-cxf-wsdl-first-archetype, etc.) to
> see what their poms look like but none of them seems to provide any clues.
> Any ideas?
>
> Thanks!
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Unmarshalled-object-is-null-from-remote-WS-if-run-jar-but-not-if-run-from-inside-IDE-tp5737648.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [email protected]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to