避免使用arg0标签

时间:2011-06-03 06:12:22

标签: java web-services jaxb ejb-3.0

我正在使用EJB3 webservice和Jaxb。没有在我的输入xsd中我提到了一个元素arg0。但是当我在SOAP UI中打开WSDL时,它就会被创建。我该如何避免这种情况?

2 个答案:

答案 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);

}