XMLスキーマからWSDLとクラスを生成してJavaでJAX-WS Webサービスを作成しました。.NET Webサービス参照生成クラスがdateTime型で動作しない
私はC#.NETクライアントアプリケーションで使用するために、ビジュアルスタジオでWeb参照としてサービスを追加しています。
元のXMLスキーマでは、いくつかの要素のxs:dateとxs:dateTimeの2つの日付/時刻型が使用されています。
私の問題は、私の 'dateTime'タイプが正しく動作していないことです。生成されたクラス(Visual Studio 2010のXMLSerializerによって生成される)で.NET DateTimeオブジェクト(正しく)に変換され、独自のDateTimeオブジェクトを作成し、これらのクラスのいずれかでDateTimeを設定できます。しかし、リクエストをサーバーに送り返すとき、クライアントアプリケーションは、設定したDateTimeオブジェクトの代わりにnull値を送信しています。だから私はそれが正しくシリアル化されていないと思います。
私は '日付'型で同じ問題を抱えていません。この型は、シリアル化/デシリアライズされています。
私は必ず問題になる可能性が何かに気づいたが、ありません:
生成されたクラスでのDateTimeオブジェクトは次のようになります。 [System.Xml.Serialization.XmlElementAttribute(注文= 10)] 公共システム.DateTime MyDateTime {...}
生成されたクラスの日付オブジェクトは次のようになり、一方: [System.Xml.Serialization.XmlElementAttribute(データ型が= "日付"、注文= 12)] 公共のSystem.DateTime MyDate {...}
Dateオブジェクトには、DataType = "date"という追加情報がありますが、dateTimeオブジェクトのDateTypeはありません。これが問題だろうか?もしそうなら、クラスが正しく生成されないのはなぜですか?私はJBossのマシン上でのLiveCycleで働いていた任意のヘルプ
注:dateTimeの問題は単方向性の問題です。この問題は、クライアント(.NET)アプリケーションがdateTime要素を持つ要求オブジェクトをサーバーに送信し、サーバーがNULL値を受け取るときに発生します。もう1つの方法は問題ありません(サーバーがdateTime要素を含む応答オブジェクトを送信する場合、クライアントは正しい日付/時刻情報を持つDateTimeオブジェクトで応答を受信します) – Josh
実際に有効なDateTime VALUEを要求に追加します。次に、クライアントシステムでFiddlerを実行し、要求を確認して、送信要求をサーバーに検証してください。あなたの発見と一緒に戻ってください。 – kroonwijk
私は同様の問題を抱えていました。私のケースでは、dateTimeメンバはサーバーに送信されたxmlでスキップされました。これは、wsdlにminOccurs = "0"が含まれているという事実に関連していました。その結果、Visualの生成されたクライアントには、このフィールドが '指定された'フラグが含まれます。私は追加しておく必要があります:fieldNameSpedified = true;そのようなフィールドごとに。あなたの場合もそうです。 – bart