我有一个使用 jax-ws 和 netbeans 7 的向导创建的 web 服务(这是我的第一次)。要使用 java.util.Date 而不是 XmlGregorianCalendar,我已使用此 xml 修改了客户端的 Web 服务:
<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:schema"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jaxb:globalBindings>
<jaxb:serializable/>
<jaxb:javaType name="java.util.Date" xmlType="xsd:dateTime"/>
</jaxb:globalBindings>
</jaxws:bindings>
现在使用 Date 代替 XmlGregorianCalendar 并生成 Adapter1 :
public class Adapter1
extends XmlAdapter<String, Date>
{
public Date unmarshal(String value) {
return new Date(value);
}
public String marshal(Date value) {
if (value == null) {
return null;
}
return value.toString();
}
}
当我在适配器中添加 system.out.println 时,我看到 Date 已接收/发送到服务器,但如果我使用 ws 的方法,我在 Date field/parameters 上总是为空。
谢谢 。