1

私はこの問題で本当に苦労しています。

基本的に、Java/JAX-WS を使用して WebService を構築しました。これが私のインターフェイスです

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

@WebService
public interface OperationsInterface {

@WebResult(name = "result")
LoginResponse Login(@WebParam(name = "login") Login login);

@WebResult(name = "result")
String Purchase(@WebParam(name = "purchase") Purchase purchase);

}

ログインは、2 つの文字列 (ユーザー名とパスワード) を含む単なる POJO です。

LoginResponse は別の POJO です。

String status;
int code;
String message;
SubscriptionTier subscriptionTier;
String accountNumber;
String firstName;
String lastName;

派手なことは何もなく、実際にはかなり単純です。リクエストはこんな感じ

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ott="http://ott.amentum.net/">
   <soapenv:Header/>
   <soapenv:Body>
      <ott:Login>
         <login>
            <username>USERNAME</username>
            <password>1234</password>
         </login>
      </ott:Login>
   </soapenv:Body>
</soapenv:Envelope>

するとこんな返事が返ってくる

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:LoginResponse xmlns:ns2="http://ott.amentum.net/">
         <result>
            <accountNumber>0110000076</accountNumber>
            <code>1</code>
            <firstName>JOHN</firstName>
            <lastName>DOE</lastName>
            <message>Login has been successful.</message>
            <status>success</status>
            <subscriptionTier>
               <tier>TVOD</tier>
               <tier>CANAL</tier>
               <tier>CATCHUP</tier>
            </subscriptionTier>
         </result>
      </ns2:LoginResponse>
   </soap:Body>
</soap:Envelope>

私の知る限り、これは正しいですが、私の顧客はこのようなものを期待しています

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:LoginResponse xmlns:ns2="http://ott.amentum.net/">
         <accountNumber>0410089676</accountNumber>
         <code>1</code>
         <firstName>MARIA DEL CARMEN</firstName>
         <lastName>PADILLA MARTIN</lastName>
         <message>Login has been successful.</message>
         <status>success</status>
         <subscriptionTier>
            <tier>TVOD</tier>
            <tier>CANAL</tier>
            <tier>CATCHUP</tier>
         </subscriptionTier>
      </ns2:LoginResponse>
   </soap:Body>
</soap:Envelope>

彼らは、情報を返すために作成した LoginResponse オブジェクトの名前である結果タグを削除するよう求めています。

これを行う方法はありますか?

前もって感謝します

4

0 に答える 0