1

サードパーティ サービスのオリジナルの wsdl があります。簡略化。

<s:element name="ProcessRequest">
  <s:complexType>
     <s:sequence>
       <s:element minOccurs="0"  maxOccurs="1" name="strXMLInput" type="s:string"/>              
     </s:sequence>
  </s:complexType>
  </s:element>

サービスに送信する必要がある xml を表す COBOL コピーブックを生成する CICS Web Service Assistant 用に変更しました。

簡略化。

<s:element name="ProcessRequest">
    <s:complexType>
    <s:sequence>
        <s:element  name="strXMLInput" >
            <s:complexType>
                <s:sequence>
                 <s:element name="ACORD">
                    <s:complexType>
                    <s:sequence>
                     <s:element name="SignonRq">
                      <s:complexType>
                        <s:sequence>
                                        <s:element name="CustLoginId">
                             <s:simpleType>
                                 <s:restrictionbase="s:string"  >
                                  <s:length value="10"/>
                                       </s:restriction>
                            </s:simpleType>
                            </s:element>    

wsdl を変更したので、cobol で長い文字列を作成する代わりに、正しい ACORD xml をサービスに送信するためのすべての要素がコピーブックに含まれるようになりました。WireShark を使用して、サービスへの要求をキャプチャし、完全にドキュメント xml がエンコードされていないため、正しい要求は

    <ProcessRequest><strXMLInput>&gt:Acord....etc,

しかし、私が送信している私のモッズで

     <ProcessRequest><strXMLInput><Acord....etc.//actual doc xml 

とにかく、拡張された wsdl でこれを機能させ、メインフレームに strXMLInput がまだ文字列であるが子または他のアイデアがあることを知らせることができますか? ありがとう...

4

1 に答える 1

2

SOAP データ ストリームのアイテム内に XML を埋め込みたいようです。これにはCDATAセクションが必要です。CICS TS バージョン 4 はこれを直接サポートしていません。バージョン 5 についてはわかりません。

XML 対応のアプリケーションを作成すれば、希望する結果に近づくことができると思います。

アップデート:

私はあなたが何をしているのか誤解しています。これはプロバイダーではなくリクエスターですよね? その場合は、DFHPIRT に直接リンクする必要があると思います。これについては、私が指摘した XML 対応のサービス リクエスター アプリケーションの作成 の後のトピックで取り上げます。

于 2013-07-30T17:01:00.250 に答える