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.

Reply via email to