javax.jws 批注-更改入参和回参Name属性

Java Web Service (JWS) 批注的文件是 Web Service 的核心

javax.jws.WebService

描述目标:类

指定实现 Web Service 的 JWS 文件。

批注特性

name: Web Service 的名称。映射到 WSDL 文件中的 <wsdl:portType> 元素。 默认值为 JWS 文件中 Java 类的非限定名称。
targetNamespace:  用于从此 Web Service 生成的 WSDL 和 XML 元素的 XML 名称空间。

javax.jws.WebParam

描述目标:参数

自定义 Web Service 的操作输入参数和生成的 WSDL 文件的元素之间的映射。还用于指定参数的行为。

批注特性

name:  WSDL 文件中参数的名称。对于 RPC 样式的 Web Service,该名称映射到表示该参数的 <wsdl:part> 元素。对于文档样式的 Web Service,该名称为表示该参数的 XML 元素的本地名称。
默认值为该方法的参数的名称。

javax.jws.WebResult

描述目标:方法

自定义 Web Service 操作返回值和生成的 WSDL 文件的对应元素之间的映射。

批注特性

name  WSDL 文件中参数的名称。对于 RPC 样式的 Web Service,该名称映射到表示返回值的 <wsdl:part> 元素。对于文档样式的 Web Service,该名称为表示返回值的 XML 元素的本地名称。默认值为硬编码名称 result。 

 

自动生成的WSDL,如下:

<xs:complexType name="OP_AutoGetInfo">

            <xs:sequence>

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

        </xs:sequence>

  </xs:complexType>

 

<xs:complexType name="OP_AutoGetInfoResponse">

             <xs:sequence>

             <xs:element name="return" type="tns:tAutoGetInfoResp" minOccurs="0" />

         </xs:sequence>

  </xs:complexType>

由于输入参数被默认为:arg0,返回参数被默认为:return

 不利于对XML数据的监控或者其他处理

现在对XML的入参和出参进行注解处理。

 

(1)、在服务类中进行类的注解(WebService) 和 入参注解(WebParam)  以及返回注解(WebResult

@javax.jws.WebService(serviceName = "SI_Interface_IN_Service")

publicclass SI_Interface_IN {

    @WebResult(name="TRESPONSE")

    public MessageResp OP_AutoGetInfo(@WebParam(name="IREQUEST") T_AutoGetInfo_Req messageReq) {

        ..........

       }

 }

(2)、在代理类中也进行入参、出参的注解,如下:

publicclass SI_Interface_IN_Delegate{

    @WebResult(name="TRESPONSE")

    public MessageResp OP_AutoGetInfo (@WebParam(name="IREQUEST")

           T_AutoGetInfo_Req messageReq) {

      .........

    }

}

 

完成之后,生成的WSLD如下:

<xs:complexType name="OP_ AutoGetInfo ">

<xs:sequence>

<xs:element name="IREQUEST" type="tns:tAutoGetInfoReq" minOccurs="0" />

  </xs:sequence>

</xs:complexType>

 

<xs:complexType name="OP_AutoGetInfoResponse">

<xs:sequence>

      <xs:element name="TRESPONSE" type="tns:tAutoGetInfoResp" minOccurs="0" />

  </xs:sequence>

  </xs:complexType>

 

最终改名成功。

<

 

你可能感兴趣的:(java)