4

カスタム型を返す 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;
    }
}
4

1 に答える 1

4

myTypeに注釈が付けられていることを確認する必要があります@XmlRootElement(name="myType")。(メソッドにもアノテーションを付ける必要があるかもしれませ@WebResult(name="myType")ん。

(Java では、クラス名は大文字で始まるので、実際には大文字である必要がありますMyType)

于 2012-10-11T09:23:40.220 に答える