jax-ws と netbeans 7 のウィザードで作成した Web サービスがあります (これは初めてです)。XmlGregorianCalendar の代わりに java.util.Date を使用するために、クライアントの Web サービスを次の xml で変更しました。
<?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>
XmlGregorianCalendar の代わりに Date が使用されるようになり、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 を追加すると、日付が受信/サーバーに送信されることがわかりますが、ws のメソッドを使用すると、 Date フィールド/パラメーターで常に null になります。
ありがとう 。