カスタム型を返す Java Web サービスを作成しています。SOAP応答を見ると「myType」という名前が使用されていないことを除いて、すべて正常に機能します-「return」を使用します
これは私の SOAP 応答です。基本的には「return」と書かれていますが、「mytype」と言いたいのです。
S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:MethodResponse xmlns:ns2="http://myWebservice/">
<return>
<field1>sdf</field1>
<field2>sdf</field2>
</return>
</ns2:MethodResponse >
</S:Body>
</S:Envelope>
クラス パッケージ myWebservice
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@WebService(serviceName = "myWebserivce")
public class myWebserivce{
@WebMethod(operationName = "Method")
public MyType Method(@WebParam(name = "string1") String string1, @WebParam(name = "string2") String string2) {
MyType mt = new MyType();
mt.setField1(string1);
mt.setfield2(string2);
return mt;
}
}
MyType クラス
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="MyType")
public class MyType {
private String field1;
private String field2;
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setField2(String field2) {
this.field2 = field2;
}
}
解決
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@WebService(serviceName = "myWebserivce")
public class myWebserivce{
@WebMethod(operationName = "Method")
@WebResult(name="MyType")
public MyType Method(@WebParam(name = "string1") String string1, @WebParam(name = "string2") String string2) {
MyType mt = new MyType();
mt.setField1(string1);
mt.setfield2(string2);
return mt;
}
}