You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by clarkcb <cl...@gmail.com> on 2013/08/21 09:30:53 UTC

Unmarshalled object is null from remote WS if run jar but not if run from inside IDE

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.

Re: Unmarshalled object is null from remote WS if run jar but not if run from inside IDE

Posted by Claus Ibsen <cl...@gmail.com>.
I suggest to make sure the classpath for running standable contains
all the expected JARs. And if you do any tricks such as having an uber
JAR or something then that can be a problem.
http://camel.apache.org/how-do-i-use-a-big-uber-jar.html

On Wed, Aug 21, 2013 at 11:21 PM, clarkcb <cl...@gmail.com> wrote:
> I thought this at first, and that it was the incoming interceptor to blame
> for exhausting the message body (as InputStream) before it got to the
> unmarshalling step, but after removing the interceptors from endpoint
> configuration I still have the same problem.
>
> I decided to debug both versions (running inside IDE vs. running as
> standalone jar), and the difference appears to be that the the IDE version
> succeeds in finding a fallbackConverter to convert MessageContentList to the
> target type (BaseTypeConverterRegistry.java:doConvertTo:...for
> (FallbackTypeConverter fallback : fallbackConverters)...), whereas the
> standalone jar version does not find a fallbackConverter and thus returns
> null. Why this is the case is still a mystery, but I'm going to keep digging
> into this.
>
> Please let me know if you have any thoughts on why fallbackConverters would
> be different for these cases.
>
> 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-tp5737648p5737703.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Re: Unmarshalled object is null from remote WS if run jar but not if run from inside IDE

Posted by clarkcb <cl...@gmail.com>.
I thought this at first, and that it was the incoming interceptor to blame
for exhausting the message body (as InputStream) before it got to the
unmarshalling step, but after removing the interceptors from endpoint
configuration I still have the same problem.

I decided to debug both versions (running inside IDE vs. running as
standalone jar), and the difference appears to be that the the IDE version
succeeds in finding a fallbackConverter to convert MessageContentList to the
target type (BaseTypeConverterRegistry.java:doConvertTo:...for
(FallbackTypeConverter fallback : fallbackConverters)...), whereas the
standalone jar version does not find a fallbackConverter and thus returns
null. Why this is the case is still a mystery, but I'm going to keep digging
into this.

Please let me know if you have any thoughts on why fallbackConverters would
be different for these cases.

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-tp5737648p5737703.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Unmarshalled object is null from remote WS if run jar but not if run from inside IDE

Posted by Claus Ibsen <cl...@gmail.com>.
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 <cl...@gmail.com> 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: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen