我有以下界面,代表我正在使用的远程Web服务。
@WebService(name="ws_listadosPort", portName="ws_listadosPort", targetNamespace="...")
@SOAPBinding(style=Style.RPC, use=Use.ENCODED, parameterStyle=ParameterStyle.WRAPPED)
public interface TheService {
@WebMethod(operationName="someMethod")
@WebResult(partName="return")
String someMethod(@WebParam(name="when", partName="when") Date when);
}
我只是通过
创建一个Web服务客户端QName serviceName = new QName(namespace, "ws_listados");
QName portTypeName = new QName(namespace, "ws_listadosPort");
Service service = Service.create(new URL(wsdlLocation), serviceName);
TheService servicePort = service.getPort(portTypeName, TheService.class);
并调用所需的方法。然而,当检查产生的信封(通过提琴手)时,我注意到"当"参数作为xsd:dateTime
发送<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:someMethod xmlns:ns2="..."><when>2014-04-21T12:00:00-03:00</when></ns2:someMethod>
</S:Body>
</S:Envelope>
我引用的wsdl声明当参数是xsd:date,而不是xsd:dateTime。
<message name="someMethodRequest">
<part name="when" type="xsd:date" />
</message>
<portType name="ws_listadosPortType">
<operation name="someMethod">
<input message="tns:someMethodRequest"/>
<output message="tns:someMethodResponse"/>
</operation>
</portType>
我正在使用Jersey的JAX-WS实现。我如何调整我的注释(甚至我的参数数据类型),以便在&#34;&#34;生成请求时生成请求。参数编码为xsd:date而不是xsd:dateType?