Your post is kind of too long and I am not really seeing how your
client is calling the method and how your service is setting the
value,
Could you compare that to the cxf's sample code at
samples/soap_header/src/main/java/demo/soap_header/(client|server)?


2014-11-28 18:21 GMT+01:00 André Costa Lima <[email protected]>:
> Hello,
>
> I am a new CXF (v3.0.0) user. Actually, I am new to the whole JAX-WS thing.
> :)
> I have set up a JAX-WS service, SOAP over JMS with ActiveMQ. The server
> methods invocations are working fine, but I am having some trouble
> regarding the Holder class.
> I am using the holder class as a container for the outgoing SOAP header for
> all web methods, as specified in the WSDL.
> I started from WSDL first with Spring configuration for both clients and
> servers.
> I have provided an async binding to the wsdl2java tool to generate the
> async method signatures, because I want to use those instead of the sync
> ones.
>
> The problem is that when I pass the Holder object to the client method and
> assign the value field in the server, the client sees it as null but no
> exception is thrown.
> Further, if I put the @UseAsyncMethod annotation to command CXF to use the
> pure async method I have implemented, CXF throws NPE at
> HolderOutInterceptor class.
> I noticed that if the web method has no arguments besides the SOAP headers
> everything works just fine, otherwise what I have described above happens.
>
> Below there are my configurations.
>
> Maven plugin:
>
> <plugin>
> <groupId>org.apache.cxf</groupId>
>           <artifactId>cxf-codegen-plugin</artifactId>
>           <executions>
>           <execution>
>                     <id>generate-sources</id>
>                               <phase>generate-sources</phase>
>                               <configuration>
>                               <defaultOptions>
>                                         <bindingFiles>
>
> <bindingFile>${basedir}/src/main/resources/oa_types-binding.xml</bindingFile>
>
> <bindingFile>${basedir}/src/main/resources/oa_async-binding.xml</bindingFile>
>                                         </bindingFiles>
>
> <noAddressBinding>true</noAddressBinding>
>                                     </defaultOptions>
>                                     <sourceRoot>
>
> ${basedir}/target/generated-sources/cxf
>                                     </sourceRoot>
>                                     <wsdlOptions>
>                                         <wsdlOption>
>
> <wsdl>${basedir}/src/main/resources/OA_Server.wsdl</wsdl>
>
> <wsdlLocation>classpath:OA_Server.wsdl</wsdlLocation>
>                                             <extraargs>
>                                                 <extraarg>-p</extraarg>
>                                                 <extraarg>
> http://www.multispeak.org/Version_4.1_Release=org.multispeak.version_4_1_6.OA
> </extraarg>
>                                                 <extraarg>-p</extraarg>
>
> <extraarg>cpsm_V4.1_Release=org.cspm.version_4_1.OA</extraarg>
>                                                 <extraarg>-p</extraarg>
>
> <extraarg>gml_V4.1_Release=org.gml.version_4_1.OA</extraarg>
>                                                 <extraarg>-p</extraarg>
>                                                 <extraarg>
> http://www.w3.org/1999/xlink=org.w3.xlink.OA</extraarg>
>                                                 <extraarg>-p</extraarg>
>                                                 <extraarg>
> http://www.w3.org/2001/XMLSchema=org.w3.xmlschema.OA</extraarg>
>                                                 <!--
> <extraarg>-p</extraarg> -->
>                                                 <!--
> <extraarg>org.multispeak.version_4_1_6.OA</extraarg> -->
>                                                 <!--
> <extraarg>-impl</extraarg> -->
>                                                 <!--
> <extraarg>-server</extraarg> -->
>                                                 <!--
> <extraarg>-client</extraarg> -->
>
> <extraarg>-autoNameResolution</extraarg>
>                                                 <extraarg>-fe</extraarg>
>                                                 <extraarg>jaxws21</extraarg>
>                                                 <extraarg>-exsh</extraarg>
>                                                 <extraarg>true</extraarg>
>                                             </extraargs>
>                                         </wsdlOption>
>                                     </wsdlOptions>
>                                 </configuration>
>                                 <goals>
>                                     <goal>wsdl2java</goal>
>                                 </goals>
> </execution>
> </executions>
> </plugin>
>
> Spring:
>
>     <beans:bean id="connection-factory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>         <beans:property name="brokerURL"
> value="${outside.multispeak.jms.broker}"/>
>     </beans:bean>
>
>     <beans:bean id="pooled-connection-factory"
> class="org.apache.activemq.pool.PooledConnectionFactory"
> destroy-method="stop">
>         <beans:constructor-arg index="0" ref="connection-factory"/>
>         <beans:property name="expiryTimeout"
> value="${outside.multispeak.jms.pool.expiryTimeout}"/>
>     </beans:bean>
>
> <!-- multispeak call handling interface (OA) -->
>
>         <!-- client side -->
>
>         <jaxws:client
>             id="multispeak-oa-client"
>             xmlns:ns="http://www.multispeak.org/Version_4.1_Release";
>             serviceClass="org.multispeak.version_4_1_6.OA.OAServerSoap"
>             serviceName="ns:OA_Server"
>             endpointName="ns:OA_ServerSoap"
>             address="#{'jms:queue:'
>                 + '${outside.multispeak.oa.jms.queue}'
>                 + '?timeToLive=' + '${outside.multispeak.jms.timeToLive}'
>                 + '&amp;requestTimeout' +
> '${outside.multispeak.jms.receiveTimeout}'}"
>             wsdlLocation="classpath:OA_Server.wsdl">
>             <jaxws:features>
>                 <beans:bean class="org.apache.cxf.feature.LoggingFeature "/>
>                 <beans:bean
> class="org.apache.cxf.transport.jms.ConnectionFactoryFeature">
>                     <beans:constructor-arg index="0"
> ref="pooled-connection-factory"/>
>                 </beans:bean>
>             </jaxws:features>
>            </jaxws:client>
>
>         <!-- server side -->
>
>         <beans:bean id="forwarding-oa-server"
> class="${outside.multispeak.oa.server}" />
>         <beans:bean id="multispeak-oa-obj-factory"
> class="org.multispeak.version_4_1_6.OA.ObjectFactory" />
>
>         <jaxws:endpoint
>             id="multispeak-oa-server"
>             xmlns:tns="http://www.multispeak.org/Version_4.1_Release";
>             implementor="x.x.outside.multispeak.oa.server.OAServerSoapImpl"
>             serviceName="tns:OA_Server"
>             endpointName="tns:OA_ServerSoap"
>             address="#{'jms:queue:' + '${outside.multispeak.oa.jms.queue}'
> + ''}"
>             publish="false"
>             wsdlLocation="classpath:OA_Server.wsdl">
>             <jaxws:features>
>                 <beans:bean class="org.apache.cxf.feature.LoggingFeature "/>
>                 <beans:bean
> class="org.apache.cxf.transport.jms.ConnectionFactoryFeature">
>                     <beans:constructor-arg index="0"
> ref="pooled-connection-factory"/>
>                 </beans:bean>
>             </jaxws:features>
>         </jaxws:endpoint>
>
> The Service Endpoint Interface generated.
> There are two methods: pingURL and odEventNotification.
> pingURLAsync, as it has no arguments besides the headers, works just fine,
> but odEventNotificationAsync does not.
> Note that I am using an AsyncHandler of course. In case of pingURLAsync I
> can get Holder.value in the handleResponse(Response<T>) callback without
> any problems.
>
> @WebService(targetNamespace = "http://www.multispeak.org/Version_4.1_Release";,
> name = "OA_ServerSoap")
> @XmlSeeAlso({ObjectFactory.class, org.w3.xlink.OA.ObjectFactory.class,
> org.gml.version_4_1.OA.ObjectFactory.class,
> org.cspm.version_4_1.OA.ObjectFactory.class})
> public interface OAServerSoap {
>
> ...
>
> @RequestWrapper(localName = "PingURL", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.PingURL")
>     @ResponseWrapper(localName = "PingURLResponse", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.PingURLResponse")
>     @WebMethod(operationName = "PingURL")
>     public Response<org.multispeak.version_4_1_6.OA.PingURLResponse>
> pingURLAsync(
>         @WebParam(name = "MultiSpeakMsgHeader", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, header = true)
>         MultiSpeakMsgHeader multiSpeakMsgHeader,
>         @WebParam(mode = WebParam.Mode.OUT, name = "MultiSpeakMsgHeader",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";, header =
> true)
>         javax.xml.ws.Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1
>     );
>
>     @RequestWrapper(localName = "PingURL", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.PingURL")
>     @ResponseWrapper(localName = "PingURLResponse", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.PingURLResponse")
>     @WebMethod(operationName = "PingURL")
>     public Future<?> pingURLAsync(
>         @WebParam(name = "MultiSpeakMsgHeader", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, header = true)
>         MultiSpeakMsgHeader multiSpeakMsgHeader,
>         @WebParam(mode = WebParam.Mode.OUT, name = "MultiSpeakMsgHeader",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";, header =
> true)
>         javax.xml.ws.Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1,
>         @WebParam(name = "asyncHandler", targetNamespace = "")
>         AsyncHandler<org.multispeak.version_4_1_6.OA.PingURLResponse>
> asyncHandler
>     );
>
>     /**
>      * Requester pings URL of OA to see if it is alive.  Returns
> errorObject(s) as necessary to communicate application status.
>      */
>     @WebResult(name = "PingURLResult", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>     @RequestWrapper(localName = "PingURL", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.PingURL")
>     @WebMethod(operationName = "PingURL", action = "
> http://www.multispeak.org/Version_4.1_Release/PingURL";)
>     @ResponseWrapper(localName = "PingURLResponse", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.PingURLResponse")
>     public org.multispeak.version_4_1_6.OA.ArrayOfErrorObject pingURL(
>         @WebParam(name = "MultiSpeakMsgHeader", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, header = true)
>         MultiSpeakMsgHeader multiSpeakMsgHeader,
>         @WebParam(mode = WebParam.Mode.OUT, name = "MultiSpeakMsgHeader",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";, header =
> true)
>         javax.xml.ws.Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1
>     );
>
> @RequestWrapper(localName = "ODEventNotification", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.ODEventNotification")
>     @ResponseWrapper(localName = "ODEventNotificationResponse",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";,
> className = "org.multispeak.version_4_1_6.OA.ODEventNotificationResponse")
>     @WebMethod(operationName = "ODEventNotification")
>     public
> Response<org.multispeak.version_4_1_6.OA.ODEventNotificationResponse>
> odEventNotificationAsync(
>         @WebParam(name = "ODEvents", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>         org.multispeak.version_4_1_6.OA.ArrayOfOutageDetectionEvent
> odEvents,
>         @WebParam(name = "transactionID", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>         java.lang.String transactionID,
>         @WebParam(name = "MultiSpeakMsgHeader", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, header = true)
>         MultiSpeakMsgHeader multiSpeakMsgHeader,
>         @WebParam(mode = WebParam.Mode.OUT, name = "MultiSpeakMsgHeader",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";, header =
> true)
>         javax.xml.ws.Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1
>     );
>
>     @RequestWrapper(localName = "ODEventNotification", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.ODEventNotification")
>     @ResponseWrapper(localName = "ODEventNotificationResponse",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";,
> className = "org.multispeak.version_4_1_6.OA.ODEventNotificationResponse")
>     @WebMethod(operationName = "ODEventNotification")
>     public Future<?> odEventNotificationAsync(
>         @WebParam(name = "ODEvents", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>         org.multispeak.version_4_1_6.OA.ArrayOfOutageDetectionEvent
> odEvents,
>         @WebParam(name = "transactionID", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>         java.lang.String transactionID,
>         @WebParam(name = "MultiSpeakMsgHeader", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, header = true)
>         MultiSpeakMsgHeader multiSpeakMsgHeader,
>         @WebParam(mode = WebParam.Mode.OUT, name = "MultiSpeakMsgHeader",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";, header =
> true)
>         javax.xml.ws.Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1,
>         @WebParam(name = "asyncHandler", targetNamespace = "")
>
> AsyncHandler<org.multispeak.version_4_1_6.OA.ODEventNotificationResponse>
> asyncHandler
>     );
>
>     /**
>      * Publisher notifies OA of a change in OutageDetectionEvents by
> sending an array of changed OutageDetectionEvent objects.  OA returns
> information about failed transactions using an array of errorObjects. The
> message header attribute 'registrationID' should be added to all publish
> messages to indicate to the subscriber under which registrationID they
> received this notification data.
>      */
>     @WebResult(name = "ODEventNotificationResult", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>     @RequestWrapper(localName = "ODEventNotification", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, className =
> "org.multispeak.version_4_1_6.OA.ODEventNotification")
>     @WebMethod(operationName = "ODEventNotification", action = "
> http://www.multispeak.org/Version_4.1_Release/ODEventNotification";)
>     @ResponseWrapper(localName = "ODEventNotificationResponse",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";,
> className = "org.multispeak.version_4_1_6.OA.ODEventNotificationResponse")
>     public org.multispeak.version_4_1_6.OA.ArrayOfErrorObject
> odEventNotification(
>         @WebParam(name = "ODEvents", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>         org.multispeak.version_4_1_6.OA.ArrayOfOutageDetectionEvent
> odEvents,
>         @WebParam(name = "transactionID", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";)
>         java.lang.String transactionID,
>         @WebParam(name = "MultiSpeakMsgHeader", targetNamespace = "
> http://www.multispeak.org/Version_4.1_Release";, header = true)
>         MultiSpeakMsgHeader multiSpeakMsgHeader,
>         @WebParam(mode = WebParam.Mode.OUT, name = "MultiSpeakMsgHeader",
> targetNamespace = "http://www.multispeak.org/Version_4.1_Release";, header =
> true)
>         javax.xml.ws.Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1
>     );
>
> ...
>
> The SEI implementation.
> Both pingURL and odEventNotification simply forward the call to a delegate.
> Both inbound and outbound headers are placed in a common container and
> handed over to the delegate.
> The async methods simply execute the calls in background and end up calling
> the sync methods internally.
> The line
> mspkHeader.setOutbound(mObjectFactory.createMultiSpeakMsgHeader());
> simply calls multiSpeakMsgHeader1.value = ...
>
> @WebService(
>         serviceName = "OA_Server",
>         portName = "OA_ServerSoap",
>         targetNamespace = "http://www.multispeak.org/Version_4.1_Release";,
>         wsdlLocation = "classpath:OA_Server.wsdl",
>         endpointInterface = "org.multispeak.version_4_1_6.OA.OAServerSoap")
> public class OAServerSoapImpl implements OAServerSoap {
>
> ...
>
> @Override
>     public ArrayOfErrorObject pingURL(MultiSpeakMsgHeader
> multiSpeakMsgHeader, Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1) {
>         LOG.entry(multiSpeakMsgHeader, multiSpeakMsgHeader1);
>         try {
>             Preconditions.checkNotNull(multiSpeakMsgHeader);
>             Preconditions.checkNotNull(multiSpeakMsgHeader1);
>             MultiSpeakInOutHeader<MultiSpeakMsgHeader> mspkHeader =
> MultiSpeakInOutHeader.of(multiSpeakMsgHeader, multiSpeakMsgHeader1);
>
> mspkHeader.setOutbound(mObjectFactory.createMultiSpeakMsgHeader());
>             return
> LOG.exit(Preconditions.checkNotNull(mDelegate.pingURL(mspkHeader)));
>         } catch (Throwable t) {
>             throw LOG.throwing(Throwables.unchecked(t));
>         }
>     }
>
> @Override
> @UseAsyncMethod
> public ArrayOfErrorObject odEventNotification(ArrayOfOutageDetectionEvent
> odEvents, String transactionID, MultiSpeakMsgHeader multiSpeakMsgHeader,
> Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1) {
>         LOG.entry(odEvents, transactionID, multiSpeakMsgHeader,
> multiSpeakMsgHeader1);
>         try {
>             Preconditions.checkNotNull(odEvents, "odEvents");
>             Preconditions.checkNotNull(transactionID, "transactionID");
>             Preconditions.checkNotNull(multiSpeakMsgHeader,
> "multiSpeakMsgHeader");
>             Preconditions.checkNotNull(multiSpeakMsgHeader1,
> "multiSpeakMsgHeader1");
>             MultiSpeakInOutHeader<MultiSpeakMsgHeader> mspkHeader =
> MultiSpeakInOutHeader.of(multiSpeakMsgHeader, multiSpeakMsgHeader1);
>
> mspkHeader.setOutbound(mObjectFactory.createMultiSpeakMsgHeader());
>             return
> LOG.exit(Preconditions.checkNotNull(mDelegate.odEventNotification(odEvents,
> transactionID, mspkHeader)));
>         } catch (Throwable t) {
>             throw LOG.throwing(Throwables.unchecked(t));
>         }
>     }
>
>     @Override
>     public Future<?> pingURLAsync(MultiSpeakMsgHeader multiSpeakMsgHeader,
> Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1,
> AsyncHandler<PingURLResponse> asyncHandler) {
>         LOG.entry(multiSpeakMsgHeader, multiSpeakMsgHeader1, asyncHandler);
>         try {
>             PingURLAsync response = new PingURLAsync(this,
> multiSpeakMsgHeader, multiSpeakMsgHeader1, asyncHandler);
>             mExecutor.submit(response);
>             return LOG.exit(response.getServerAsyncResponse());
>         } catch (Throwable t) {
>             throw LOG.throwing(Throwables.unchecked(t));
>         }
>     }
>
> @Override
>     public Future<?> odEventNotificationAsync(ArrayOfOutageDetectionEvent
> odEvents, String transactionID, MultiSpeakMsgHeader multiSpeakMsgHeader,
> Holder<MultiSpeakMsgHeader> multiSpeakMsgHeader1,
> AsyncHandler<ODEventNotificationResponse> asyncHandler) {
>         LOG.entry(odEvents, transactionID, multiSpeakMsgHeader,
> multiSpeakMsgHeader1);
>         try {
>             OdEventNotificationAsync response = new
> OdEventNotificationAsync(this, odEvents, transactionID,
> multiSpeakMsgHeader, multiSpeakMsgHeader1, asyncHandler);
>             mExecutor.submit(response);
>             return LOG.exit(response.getServerAsyncResponse());
>         } catch (Throwable t) {
>             throw LOG.throwing(Throwables.unchecked(t));
>         }
>     }
>
> ...
>
> The invocation test.
>
> ...
> Holder<MultiSpeakMsgHeader> headerOut = new Holder<MultiSpeakMsgHeader>();
> Future<?> future = mServer.odEventNotificationAsync(new
> ArrayOfOutageDetectionEvent(), "0", new MultiSpeakMsgHeader(), headerOut,
> new AsyncHandlerImpl(headerOut));
> ...
> private static class AsyncHandlerImpl implements
> AsyncHandler<ODEventNotificationResponse> {
>
>         private static final XLogger LOG =
> XLoggerFactory.getXLogger(AsyncHandlerImpl.class);
>
>         private final Holder<MultiSpeakMsgHeader> mHeaderOut;
>
>         public AsyncHandlerImpl(Holder<MultiSpeakMsgHeader> headerOut) {
>             mHeaderOut = headerOut;
>         }
>
>         @Override
>         public void handleResponse(Response<ODEventNotificationResponse>
> res) {
>             try {
>                 if (LOG.isTraceEnabled()) {
>                     LOG.trace("Callback: {}", res.toString());
>                 }
>                 ODEventNotificationResponse mspkRsp = res.get();
>                 if (LOG.isTraceEnabled()) {
>                     LOG.trace("OA odEventNotificationAsync() >> callback:
> {} > multispeak header: {}", mspkRsp.toString(), mHeaderOut.value);
> //                    for (Entry<String, Object> entry :
> res.getContext().entrySet()) {
> //                        LOG.trace("Response context >> string > {} >>
> object > {}", entry.getKey(), entry.getValue());
> //                    }
>                 }
>             } catch (Exception e) {
>                 LOG.catching(e);
>             }
>         }
>     }
>
> As I said above, a NPE is thrown in HolderOutInterceptor when the response
> is returned to the client if I use the pure async method with
> @UseAsyncMethod,
> or mHeaderOut.value is null if I don't. Now, the stacktrace:
>
> 28-11-2014 17:15:07.997 WARN  [OA Thread-#1]
> org.apache.cxf.phase.PhaseInterceptorChain doLog - Interceptor for {
> http://www.multispeak.org/Version_4.1_Release}OA_Server#{http://www.multispeak.org/Version_4.1_Release}ODEventNotification
> has thrown exception, unwinding now
> java.lang.NullPointerException
>     at
> org.apache.cxf.jaxws.interceptors.HolderOutInterceptor.handleMessage(HolderOutInterceptor.java:90)
> ~[cxf-rt-frontend-jaxws-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> [cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:81)
> [cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> [cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:277)
> [cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
> [cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.continuations.JMSContinuation.doResume(JMSContinuation.java:109)
> [cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.continuations.JMSContinuation.resume(JMSContinuation.java:98)
> [cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker$JaxwsServerHandler.handleResponse(AbstractJAXWSMethodInvoker.java:193)
> [cxf-rt-frontend-jaxws-3.0.0.jar:3.0.0]
>     at
> x.x.outside.common.ws.cxf.endpoint.server.AbstractAsyncResponseHandler.fireResult(AbstractAsyncResponseHandler.java:55)
> [classes/:?]
>     at
> x.x.outside.common.ws.cxf.endpoint.server.AbstractAsyncResponseHandler.fireAsyncResult(AbstractAsyncResponseHandler.java:46)
> [classes/:?]
>     at
> x.x.outside.common.ws.cxf.endpoint.server.AbstractAsyncResponseHandler.postProcess(AbstractAsyncResponseHandler.java:41)
> [classes/:?]
>     at
> x.x.outside.common.util.ConditionEnforcerHandlerRunnable$1.invoke(ConditionEnforcerHandlerRunnable.java:10)
> [classes/:?]
>     at
> x.x.outside.common.util.ConditionEnforcerHandler$2.invoke(ConditionEnforcerHandler.java:25)
> [classes/:?]
>     at
> x.x.outside.common.util.ExceptionHandler.handle(ExceptionHandler.java:7)
> [classes/:?]
>     at
> x.x.outside.common.util.ConditionEnforcerHandler.handle(ConditionEnforcerHandler.java:20)
> [classes/:?]
>     at
> x.x.outside.common.util.ConditionEnforcerHandlerRunnable.run(ConditionEnforcerHandlerRunnable.java:7)
> [classes/:?]
>     at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> [?:1.6.0_33]
>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> [?:1.6.0_33]
>     at java.util.concurrent.FutureTask.run(FutureTask.java:166) [?:1.6.0_33]
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> [?:1.6.0_33]
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [?:1.6.0_33]
>     at java.lang.Thread.run(Thread.java:701) [?:1.6.0_33]
> 28-11-2014 17:15:08.044 TRACE [ActiveMQ Session Task-1]
> x.x.outside.test.multispeak.OAServerTestAsyncCallback$AsyncHandlerImpl
> handleResponse - Callback: org.apache.cxf.jaxws.JaxwsClientCallback$2@cc6f8c
> 28-11-2014 17:15:08.044 ERROR [ActiveMQ Session Task-1]
> x.x.outside.test.multispeak.OAServerTestAsyncCallback$AsyncHandlerImpl
> handleResponse - catching
> java.util.concurrent.ExecutionException:
> org.apache.cxf.binding.soap.SoapFault: Fault occurred while processing.
>     at
> org.apache.cxf.jaxws.JaxwsClientCallback$2.get(JaxwsClientCallback.java:99)
> ~[cxf-rt-frontend-jaxws-3.0.0.jar:3.0.0]
>     at
> x.x.outside.test.multispeak.OAServerTestAsyncCallback$AsyncHandlerImpl.handleResponse(OAServerTestAsyncCallback.java:81)
> [classes/:?]
>     at
> org.apache.cxf.jaxws.JaxwsClientCallback.handleException(JaxwsClientCallback.java:87)
> [cxf-rt-frontend-jaxws-3.0.0.jar:3.0.0]
>     at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:821)
> [cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.JMSConduit.processReplyMessage(JMSConduit.java:413)
> [cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.JMSConduit.onMessage(JMSConduit.java:380)
> [cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.util.MessageListenerContainer$LocalTransactionalMessageListener.onMessage(MessageListenerContainer.java:120)
> [cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1361)
> [activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131)
> [activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202)
> [activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
> [activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
> [activemq-client-5.9.1.jar:5.9.1]
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> [?:1.6.0_33]
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [?:1.6.0_33]
>     at java.lang.Thread.run(Thread.java:701) [?:1.6.0_33]
> Caused by: org.apache.cxf.binding.soap.SoapFault: Fault occurred while
> processing.
>     at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:780)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     ... 11 more
> 28-11-2014 17:15:08.045 ERROR
> [x.x.outside.test.multispeak.OAServerTestAsyncCallback-1]
> x.x.outside.test.multispeak.OAServerTestAsyncCallback run - catching
> java.util.concurrent.ExecutionException:
> org.apache.cxf.binding.soap.SoapFault: Fault occurred while processing.
>     at org.apache.cxf.endpoint.ClientCallback.get(ClientCallback.java:169)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.jaxws.JaxwsResponseCallback.get(JaxwsResponseCallback.java:54)
> ~[cxf-rt-frontend-jaxws-3.0.0.jar:3.0.0]
>     at
> x.x.outside.test.multispeak.OAServerTestAsyncCallback$1.run(OAServerTestAsyncCallback.java:52)
> [classes/:?]
>     at
> x.x.outside.test.multispeak.spi.AbstractMultispeakServerTest$2.run(AbstractMultispeakServerTest.java:112)
> [classes/:?]
>     at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> [?:1.6.0_33]
>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> [?:1.6.0_33]
>     at java.util.concurrent.FutureTask.run(FutureTask.java:166) [?:1.6.0_33]
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> [?:1.6.0_33]
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [?:1.6.0_33]
>     at java.lang.Thread.run(Thread.java:701) [?:1.6.0_33]
> Caused by: org.apache.cxf.binding.soap.SoapFault: Fault occurred while
> processing.
>     at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
> ~[cxf-rt-bindings-soap-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:780)
> ~[cxf-core-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.JMSConduit.processReplyMessage(JMSConduit.java:413)
> ~[cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.JMSConduit.onMessage(JMSConduit.java:380)
> ~[cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.cxf.transport.jms.util.MessageListenerContainer$LocalTransactionalMessageListener.onMessage(MessageListenerContainer.java:120)
> ~[cxf-rt-transports-jms-3.0.0.jar:3.0.0]
>     at
> org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1361)
> ~[activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131)
> ~[activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202)
> ~[activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
> ~[activemq-client-5.9.1.jar:5.9.1]
>     at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
> ~[activemq-client-5.9.1.jar:5.9.1]
>     ... 3 more
>
> Is this a configuration problem? Am I doing something stupid?
> Thanks!
>
> Regards,
>
> André Costa Lima

Reply via email to