0

サードパーティのWebサービス用のWebサービスクライアントを作成しています。Webサービスは、XMLGregorianCalendarを使用してタイムスタンプを送信しています。Webメソッドを呼び出すと、エラーメッセージが表示された例外が発生します

Input request field Start Date/Time has an invalid value.
Invalid DateTime value 2012-01-01T05:05:05, expected in format YYYY-MM-DD-HH.MM.SS

Webサービスのクライアント側でxmlバインディングをオーバーライドすることは可能ですか?可能であればその方法。

4

1 に答える 1

1

私も同じ問題を抱えていて、クライアント側でjaxbバインディングをカスタマイズすることでそれを解決することができました。

これを行うには、jaxbカスタマイズxmlを作成し、クライアントスタブの生成中に使用します。

私が作成したjaxbカスタマイズファイルを以下に追加します

<?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" 
        wsdlLocation="relative url to wsdl location">

<jaxb:globalBindings>
     <jaxb:serializable/>
     <jaxb:javaType name="java.lang.String" xmlType="xsd:dateTime"/>
</jaxb:globalBindings>

</jaxws:bindings>

上記のファイルでは、dateTimeはスタブに文字列として作成されます。お役に立てば幸いです。

于 2012-11-08T06:58:01.543 に答える