2014-09-12 2 views
0

Являясь новичком в webservices, я работаю над потреблением веб-сервиса от API-партнера, который будет выступать в качестве сервера, я разработал приложение Gateway, которое будет посылать запросы на мой API, который будет действовать как клиент. Я сделал это, поскольку методы в моем API и API партнера не совпадают. я исследовал API партнера по SoapUI и определил метод, который я требую, который я наклеен ниже:Преобразование xml ответа SOAPUI на объект Java

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hub="http://hub4api.cellulant.com/"> 
<soapenv:Header/> 
<soapenv:Body> 
    <hub:validateAccount> 
    <credentials> 
     <username>?</username> 
     <password>?</password> 
    </credentials> 
    <packet> 
     <!--1 or more repetitions:--> 
     <Item> 
      <serviceID>?</serviceID> 
      <serviceCode>?</serviceCode> 
      <accountNumber>?</accountNumber> 
      <requestExtraData>?</requestExtraData> 
     </Item> 
    </packet> 
    </hub:validateAccount> 
</soapenv:Body> 
</soapenv:Envelope> 

После завершения заполнения запроса на указанную конечную точку URL, я получаю ниже ответ

<S:<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
Body> 
    <ns2:validateAccountResponse xmlns:ns2="http://hub4api.cellulant.com/"> 
    <return> 
     <authStatus> 
      <authStatusCode>131</authStatusCode> 
      <authStatusDescription>Authentication was a success</authStatusDescription> 
     </authStatus> 
     <results> 
      <Item> 
       <statusCode>307</statusCode> 
       <statusDescription>Account number provided is valid</statusDescription> 
       <serviceID>130</serviceID> 
       <serviceCode/> 
       <accountNumber>XXXXXXXX</accountNumber> 
       <active>yes</active> 
       <responseExtraData>{"Currency":"XXX","VALUE":"33.54","DueDate":"2014-09-12T00:00:00+07:00"}</responseExtraData> 
      </Item> 
     </results> 
    </return> 
    </ns2:validateAccountResponse> 
</S:Body> 
</S:Envelope> 

I хотите преобразовать ответ в объект java и использовать его в моем GateWay, но я не знаю, как это сделать. Может кто-нибудь, пожалуйста, помогите мне?

ответ

0

Вы можете использовать wsimport для генерации кода Java для определенного (простого) веб-сервиса.

Посмотрите на http://docs.oracle.com/javase/7/docs/technotes/tools/share/wsimport.html

+0

Для этого вам потребуется файл WSDL. Обычно публикуется следующим образом: '[endpoint]? Wsdl'. Тем не менее, я видел много WS, используя SOAP, не публикуя WSDL. – Victor