0

コピーブック要素の WSDL フィールドへのマッピングを作成しました。そして、マップは正常に構築されました。しかし、マップをローカルで実行しているときに、マッピングしている 2 つの異なる操作に対して 2 つのエラーのいずれかが発生します。

1)最初のマッピングの場合:「入力は有効ですが、不明なデータが見つかりました」と取得しているトレースログでは、入力1が存在します(3012バイト)がコンテンツがありません。

エラーの詳細: (レベル 0: オフセット 0、len 0、comp 1 of 0、#1、DI 000000000001:) オフセット 0 のデータ ('<retrFunction1' of TYPE X'0004' (retrFunction1Request retrFunction1Request Message WSDLService))。

INPUT 1 は存在しますが (3012 バイト)、内容がありません。

INPUT CARD 1 の検証メッセージの終了。

(オフセット 26130: マップ番号 0 (CobolFuncData)、DI 000000000000:) TYPE X'0148' (COBOL_OBJECT グループ CopyBook) がビルドされました。

(オフセット 26130: マップ番号 0 (CobolFuncData)、DI 000000000000:) TYPE X'0124' (000_COBOL_OPERATION レコード CopyBook) がビルドされました。

OUTPUT 1 が正常にビルドされました。

2) 2 番目のマッピングの場合:「1 つ以上の入力が無効です」と取得しているトレース ログ: INPUT 1 は存在しますが、そのタイプはエラーです。

さらに case2 の場合、次のようになります: (レベル 3: オフセット 0、レン 0、2 のコンプ 1、#1、DI 000000000001:) オフセット 0 のデータ (TYPE X'0008' の 'xmlns' (プレフィックス XMLS WSDLService))。

問題は WSDL タイプ ツリーと COBOL タイプ ツリーのマッピングではなく、これらのマップをローカルで実行するために使用している XML 要求および応答データにあると思います。正しい入力を作成し、マップを WTX でローカルに正常に実行するために使用できるガイドラインはありますか?

PS。XSDではなくWSDLをインポートしてタイプツリーを作成しています。WSDL をインポートしたときに、タイプ ツリーにノード「DOC」が表示されません。この場合、マップの作成にどのタイプのツリー レベルを使用する必要がありますか。WSDLService -> Type -> ~TypeName -> TypeDef および WSDLService -> Type -> ~TypeName -> Seq を試しました

4

1 に答える 1

0

この問題の 1 つの理由を自分で見つけました。その理由は、リクエスト XML が、変換のマッピングで使用していたタイプ ツリー レベルと一致しなかったためです。XSD の代わりに WSDL を使用している場合 (および「DOC XSD」が WSDL/XSD タイプ ツリーに表示されない場合)、このマッピングを行うより良い方法は、入力カードのタイプを「入力」として使用することです。 WSDL からの操作 (例: yourOperationName Operation yourWSDLService を入力)。

原則として、変換のマッピングを作成するには、WSDL と WSDL 操作、および XSD 構造を完全に理解することが最も重要です。

于 2014-03-25T00:08:57.563 に答える