soapui的webservice注释

时间:2014-09-25 11:18:40

标签: java soapui

如何为SOAP请求中的属性设置注释? 我的例子:

public class Example {
    @WebMethod()
    public void test(@WebParam(name="pingRequest")PingRequest HotelPingRQ) {}
}

public class PingRequest
{
    private String echo;

    public String getEcho() {
        return echo;
    }

    public void setEcho(String echo) {
        this.echo = echo;
    }
}

如果我生成一个WSDL并将其放入SoapUI中,我会得到:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:door="http://www.test.com/doorway">
<soapenv:Header/>
<soapenv:Body>
   <door:test>
      <pingRequest>
         <!--Optional:-->
          <echo>?</echo>
       </pingRequest>
   </door:test>
</soapenv:Body>

但我希望更像以下内容,echo作为属性而没有测试元素:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:door="http://www.test.com/doorway">
<soapenv:Header/>
<soapenv:Body>
   <pingRequest echo="?" />
</soapenv:Body>

如何将echo参数转换为pingRequest上的属性而不是嵌套元素?

1 个答案:

答案 0 :(得分:1)

试试这个:

@XmlAccessorType(XmlAccessType.FIELD)    
public class PingRequest
{
    @XmlAttribute
    private String echo;

    public String getEcho() {
        return echo;
    }

    public void setEcho(String echo) {
        this.echo = echo;
    }
}