我正在使用EJB3 webservice和Jaxb。没有在我的输入xsd中我提到了一个元素arg0。但是当我在SOAP UI中打开WSDL时,它就会被创建。我该如何避免这种情况?
答案 0 :(得分:3)
认为获取arg0,arg1是JAXWS规范。如果我们想要自定义它,我们必须使用@WebParam和@WebResult注释来指定好名字。如果有人可以验证这种理解,那就太棒了。
答案 1 :(得分:0)
我遇到了同样的问题,在我的 SOAP 请求中,主体被包裹在一个 arg0 元素中。解决方案是使用注释
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
作为默认值是
SOAPBinding.ParameterStyle.WRAPPED
因此,SOAP 主体被包装在 arg0 元素中。 Web 服务界面看起来像
@WebService(targetNamespace = WSInterface.NAMESPACE_REQUEST)
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface WSInterface{
String NAMESPACE_REQUEST = "...";
String NAMESPACE_RESPONSE = "...";
String TARGET_OPERATION = "...";
String RESULT_ELEMENT = "...";
@WebMethod(operationName = TARGET_OPERATION)
@WebResult(name = RESULT_ELEMENT, targetNamespace = NAMESPACE_RESPONSE)
ResponseType executeWs(RequestType wsRequest);
}