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
