Hi all, we have had some recurring issues sending messages through the CXF
client and being unable to unmarshal them correctly on the backend.

Quick environment setup: Camel 2.13.1 exposes CXF Endpoints (2.7.11) on
Glassfish 4.1 (and 4.0) running on either jdk 7 or 8.

The client sending the request is CXF 2.7.11 as well, wired up with spring.
Most of our messages work fine, however we sometimes have issues with null
pointer exceptions on the backend for some (seemingly) random messages.

Here are two sample messages. The top one does not work, the bottom one does

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
<soap:Body>
<ns2:allUsers xmlns:ns2="http://admin.sample.com/";>
<arg0>
<sortColumn>email</sortColumn>
<sortOrder>ASC</sortOrder>
<sample>
<locked>false</locked>
<companyAdmin>false</companyAdmin>
</sample>
<offset>0</offset>
<limit>25</limit>
</arg0>
</ns2:allUsers>
</soap:Body>
</soap:Envelope>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
<soap:Body>
<ns2:list xmlns:ns2="http://users.sample.com/";>
<ns2:arg0>
<sortColumn>email</sortColumn>
<sortOrder>ASC</sortOrder>
<sample>
<firstName>bri</firstName>
<locked>false</locked>
<companyAdmin>false</companyAdmin>
</sample>
<offset>0</offset>
<limit>25</limit>
</ns2:arg0>
</ns2:list>
</soap:Body>
</soap:Envelope>

Both endpoints actually share the same method parameter type on the backend
(called ListUserRequest) and everything is generated from the same set of
wsdls.

The difference with the 'broken' one is the <arg0>. It does not have the
ns2 prefix on it, and when it gets back to the backend it things the
argument is null. I thought I had found a 'fix' for this, but apparently
not.

Any insight or thoughts would be greatly appreciated.
-Nick

Reply via email to