如何将JAX-WS中的Date @WebParam映射到xsd:date而不是xsd:datetime?

时间:2014-04-21 20:18:20

标签: java web-services jax-ws

我有以下界面,代表我正在使用的远程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?

0 个答案:

没有答案