Thank you for your efforts!

I now see the real problem which is a complete different direction as the error message originally directed me to...
I'm sorry for the time you just invested.

Between the wall of log message I now discovered the following warning:
--cut
WARN org.apache.cxf.ws.addressing.soap.MAPCodec - Failed to correlate message, aborting dispatch.
--cut

Now as I saw this I looked closer to the response and saw that the remote system indeed answered with a wrong message ID:

Request was:
--cut
[...]
<MessageID xmlns="http://www.w3.org/2005/08/addressing";>urn:uuid:099a0d39-ff43-4440-a39e-953a4c51d08a</MessageID>
[...]
--cut

Response is:
--cut
[...]
<RelatesTo>urn:ford/star/services/v1/GUDB/ProcessCustomerInformationWebService</RelatesTo>
[...]
--cut

which really annoys me! They (the remote company) is very petty when it comes to the content message (die business data inside) but on their part they are very sloppy when it comes to standards... Because the response do not match to the original request the CXF API throws away the whole content which then leads to the IllegalEmptyResponseException.

However - thanks again for your time.

-
Martin

Am 07.09.21 um 12:27 schrieb Mantas Gridinas:
Do other tools consider the response to be valid XML when you
configure them with preshared XSDs (ex. intellij's XML validator)?
Either I am not sure where should I obtain the
http://www.starstandards.org/webservices/2005/10/transport schema
from, or it's different compared to what appears in
https://schemas.liquid-technologies.com/STAR/5.3.4/?page=http___www_starstandards_org_webservices_2005_10_transport.html.
That page does not seem to define ProcessMessageResponse.

On Tue, Sep 7, 2021 at 12:17 PM Martin Fernau
<[email protected]> wrote:
Hello,

I have a big problem with CXF. It seems that CXF isn't able to proper
recognize the response of the remote web service.
Please see the following shortened response:

---cut
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing";
xmlns:tran="http://www.starstandards.org/webservices/2005/10/transport";
      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
      xmlns:ns1="http://www.openapplications.org/oagis/9";
      xmlns:star="http://www.starstandard.org/STAR/5";
xmlns:fordID="urn:ford/star/security/v1.0">
      <soapenv:Header>
          [...]
      </soapenv:Header>
      <soapenv:Body>
          <tran:ProcessMessageResponse>
              <tran:payload>
                  <tran:content id="Content">
                      [...]
                  </tran:content>
              </tran:payload>
          </tran:ProcessMessageResponse>
      </soapenv:Body>
</soapenv:Envelope>
---cut

As you can see the Body contains the "ProcessMessageResponse" with
namespace "http://www.starstandards.org/webservices/2005/10/transport";
but CXF throws the following exception:

---cut
javax.xml.ws.soap.SOAPFaultException: Response message did not contain
proper response data. Expected:
{http://www.starstandards.org/webservices/2005/10/transport}ProcessMessageResponse
      at
org.apache.cxf.jaxws.JaxWsClientProxy.mapException(JaxWsClientProxy.java:195)
      at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
      at com.sun.proxy.$Proxy56.processMessage(Unknown Source)
      at
_test.service.manufacturer.ford.cu.FirstTestCU.sendToFord(FirstTestCU.java:959)
      at
_test.service.manufacturer.ford.cu.FirstTestCU.start(FirstTestCU.java:201)
      at
_test.service.manufacturer.ford.cu.FirstTestCU.main(FirstTestCU.java:1050)
Caused by:
org.apache.cxf.endpoint.ClientImpl$IllegalEmptyResponseException:
Response message did not contain proper response data. Expected:
{http://www.starstandards.org/webservices/2005/10/transport}ProcessMessageResponse
      at
org.apache.cxf.endpoint.ClientImpl.processResult(ClientImpl.java:668)
      at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:541)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:441)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:356)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:314)
      at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
      at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
      ... 4 more
---cut

So CXF complains about missing ProcessMessageResponse which clearly is
there.
Do CXF have problems to recognize the inherited namespace declarations
in the Envelope-Element so that the NS-Prefix "tran" maybe is unrelated
for CXF?
What I'm missing here?

I'm stuck at this point...

CXF Version: 3.2.14
But this also happens with 3.3 and 3.4.


Thanks
Martin

Reply via email to