webservices参数而不是参数

时间:2014-01-07 07:13:08

标签: java web-services

我正在对服务进行Java优先开发,并且生成的WSDL文件(我使用Tomcat v6.0作为我的CXF Servlet的容器​​)使用arg0,arg1等作为我的参数名称服务方法,而不是使用我的Java代码中指定的实际参数名称。这是一个众所周知的缺点还是我做错了什么? WSDL不是非常自我记录的参数名称这样! 这是一个示例wsdl片段:

<xs:complexType name="insertVendor">

<xs:sequence>

  <xs:element minOccurs="0" name="arg0" type="xs:string"/>

  <xs:element minOccurs="0" name="arg1" type="xs:string"/>

  <xs:element minOccurs="0" name="arg2" type="xs:string"/>

  <xs:element minOccurs="0" name="arg3" type="xs:string"/>

  <xs:element minOccurs="0" name="arg4" type="xs:string"/>

  <xs:element minOccurs="0" name="arg5" type="xs:string"/>

  <xs:element minOccurs="0" name="arg6" type="xs:string"/>

  <xs:element minOccurs="0" name="arg7" type="xs:string"/>

  <xs:element minOccurs="0" name="arg8" type="xs:string"/>

  <xs:element minOccurs="0" name="arg9" type="xs:string"/>

  <xs:element minOccurs="0" name="arg10" type="xs:string"/>

  <xs:element minOccurs="0" name="arg11" type="xs:string"/>

</xs:sequence>

谢谢, mallesh

2 个答案:

答案 0 :(得分:0)

您可以创建请求类并将其传递给服务方法

Class Requestclass(){

//你想要的所有参数,创建POJO类

}

在你的方法中传递这个类,

insertVendor(RequestClass req){}

答案 1 :(得分:0)

以下是answer

官方回答:JAX-WS规范(特别是第3.6.1节)要求以这种方式生成它。要自定义名称,必须使用@WebParam(name =“blah”)注释来指定更好的名称。 (您可以使用@WebResult作为返回值,但只有在查看XML时才会看到结果。)