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>
最终改名成功。
<