0

最初に Java クラスを作成することにより、ボトムアップ アプローチを使用して Web サービスを作成しようとしています。私の実装は次のようになります。

@WebMethod(operationName = "addNumbers")
public String addNumbers(
        @WebParam(name = "addNumberRequest") @XmlElement(required = true, nillable = false) final AddNumberRequest addNumberRequest) {
    return "Hello World";
}

AddNumberRequest クラスは次のとおりです。

@Repository
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = { "number1", "number2", "number3" })
public class AddNumberRequest {

    private int number1;
    private int number2;
    private int number3;

    public int getNumber1() {
        return number1;
    }

    public void setNumber1(int number1) {
        this.number1 = number1;
    }

    public int getNumber2() {
        return number2;
    }

    public void setNumber2(int number2) {
        this.number2 = number2;
    }

    public int getNumber3() {
        return number3;
    }

    public void setNumber3(int number3) {
        this.number3 = number3;
    }
}

Web サービスは公開されていますが、soapui からサンプル リクエストを生成すると、リクエストは次のようになります。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.service.test.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:addNumbers>
         <addNumberRequest>
            <number1>?</number1>
            <number2>?</number2>
            <number3>?</number3>
         </addNumberRequest>
      </ws:addNumbers>
   </soapenv:Body>
</soapenv:Envelope>

サンプルリクエストが次のようになるように、アノテーションを使用してメソッドのJava実装を作成するだけの方法はありますか?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.service.test.com/">
   <soapenv:Header/>
   <soapenv:Body>

         <addNumberRequest>
            <number1>?</number1>
            <number2>?</number2>
            <number3>?</number3>
         </addNumberRequest>

   </soapenv:Body>
</soapenv:Envelope>

ws:addNumbers (デフォルトでは operationName によって生成される) 要素をまったく持たずに、たとえば addNumberRequest などのラッパー要素の名前を決定できるようにしたいと考えています。

4

1 に答える 1

1

使ってみて

addNumbers インターフェイスの @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

于 2013-07-06T15:51:00.850 に答える