Hi, I'm using ofbiz branch 13.07, and launching it from an Eclipse environment.
I was trying to call a service from a jax-ws client (using websphere jax-ws 
library but I tried also with cxf) generating the client starting from the 
WSDL, but while the request is sent and executed correctly the response is sent 
back and fail silently in the unmarshalling fase.
Let's take the ping service as an example. 
This is the request message :

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
 <soapenv:Body>
  <ns0:ping xmlns:se="http://ofbiz.apache.org/service/";>
   <map-Map>
    <ns0:map-Entry>
     <ns0:map-Key>
      <ns0:std-String value="login.username"/>
     </ns0:map-Key>
     <ns0:map-Value>
      <ns0:std-String value="admin"/>
     </ns0:map-Value>
    </ns0:map-Entry>
    <ns0:map-Entry>
     <ns0:map-Key>
      <ns0:std-String value="login.password"/>
     </ns0:map-Key>
     <ns0:map-Value>
      <ns0:std-String value="ofbiz"/>
     </ns0:map-Value>
    </ns0:map-Entry>
   </map-Map>
  </ns0:ping>
 </soapenv:Body>
</soapenv:Envelope>

And this is the response:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
 <soapenv:Body>
  <pingResponse xmlns="http://ofbiz.apache.org/service/";>
   <map-Map>
    <map-Entry>
     <map-Key>
      <std-String value="message"/>
     </map-Key>
     <map-Value>
      <std-String value="PONG"/>
     </map-Value>
    </map-Entry>
    <map-Entry>
     <map-Key>
      <std-String value="responseMessage"/>
     </map-Key>
     <map-Value>
      <std-String value="success"/>
     </map-Value>
    </map-Entry>
   </map-Map>
  </pingResponse>
 </soapenv:Body>
</soapenv:Envelope>

As stated here:
http://www.ws-i.org/profiles/basicprofile-1.1.html#R2735
The expected response should be something like this:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
 <soapenv:Body>
  <se:pingResponse xmlns:se="http://ofbiz.apache.org/service/";>
   <map-Map>
    <se:map-Entry>
     <se:map-Key>
      <se:std-String value="message"/>
     </se:map-Key>
     <se:map-Value>
      <se:std-String value="PONG"/>
     </se:map-Value>
    </se:map-Entry>
    <se:map-Entry>
     <se:map-Key>
      <se:std-String value="responseMessage"/>
     </se:map-Key>
     <se:map-Value>
      <se:std-String value="success"/>
     </se:map-Value>
    </se:map-Entry>
   </map-Map>
  </se:pingResponse>
 </soapenv:Body>
</soapenv:Envelope>


Which works flawlessy client side.

Does anyone know how to make this work?
Can it be fixed on the server side without changing ofbiz functionality?
Are there any annotations on the client side that can solve this? External 
bindings?

Any suggestion will be much appreciated!


 

Reply via email to