私はこの問題で本当に苦労しています。
基本的に、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 オブジェクトの名前である結果タグを削除するよう求めています。
これを行う方法はありますか?
前もって感謝します