Soapui的WebService注释问题

webservice annotation issues with soapui(Soapui的WebService注释问题)

本文介绍了Soapui的WebService注释问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的经理今天给了我一个wsdl url,他想在我们这边发布一个相同的wsdl,我在将注释请求与Spring结合时遇到了一个问题,有人能帮忙吗?自定义请求如下:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:door="http://www.derbysoft.com/doorway">
<soapenv:Header/>
<soapenv:Body>
  <door:PingRequest Token="?" UserName="?" Password="?" Echo="?"/>
</soapenv:Body>
</soapenv:Envelope>

我可以生成的内容如下:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:door="http://www.test.com/doorway">
<soapenv:Header/>
<soapenv:Body>
  <door:PingRequest>
     <PingRequest Echo="?" Token="?" UserName="?" Password="?"/>
  </door:PingRequest>
</soapenv:Body>
</soapenv:Envelope>

它总是包含更多带有方法名称的元素,我如何删除它?我在这里附上了我的源代码。

@WebService(name="Example", targetNamespace="http://www.test.com/doorway", serviceName="Example")
@SOAPBinding(style=SOAPBinding.Style.RPC)
@XmlAccessorType(XmlAccessType.NONE)
public class Example {
@WebMethod(operationName="toSayHello",action="sayHello",exclude=false)
public String sayHello(@WebParam(name="userName")String userName) {
    return "Hello:" + userName;
}

@WebMethod()
public void PingRequest(@WebParam(name="PingRequest")PingRequest pingRequest) {
}

}

实体:

@XmlAccessorType(XmlAccessType.NONE)
public class PingRequest
{
@XmlAttribute(name="Echo")
private String echo;
@XmlAttribute(name="Token")
private String token;
@XmlAttribute(name="UserName")
private String userName;
@XmlAttribute(name="Password")
private String password;

public String getToken() {
    return token;
}

public void setToken(String token) {
    this.token = token;
}

public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getEcho() {
    return echo;
}

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

}

提前表示感谢!

致以亲切的问候, 詹姆斯

推荐答案

我已经找到了这样做的方法,我们使用wsimport工具来做这件事,这将生成所有的实体类和Web服务批注信息,而且这种情况的批注应该像WebService一样

这篇关于Soapui的WebService注释问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Soapui的WebService注释问题