C# から JBoss ベースの専用アプリケーションから SOAP ベースの Web サービスを利用しようとしていますが (サービス参照を介して)、サーバーが SystemException を返し続けます。
フィドラーを使用して、ベンダーのフラッシュ フロント エンドと C# からの Web サービス呼び出しをキャプチャし、soapUI でそれらを比較/微調整して、違いを名前間隔の問題まで追跡しました。
基本的に、機能しないメッセージを取得して機能させるには、<addPackageItems xmlns="...">
to<tns:addPackageItems xmlns:tns="...">
および</addPackageItems>
toに変更します</tns:addPackageItems>
私の質問は、基本的に、クライアント (私の C# コード) を変更することで、これを機能させるにはどうすればよいですか? あまり一般的になりたくないのですが、正直なところ、サーバーでエラーを回避するために名前空間が必要な理由がわからないので、C# コードを変更して xmlns の名前空間を生成する方法を尋ねたくありませんでした。addPackageItems
代替のより良い解決策があるかどうか。
その他 情報
C# コードは、Visual Studio 2012 でサービス参照を追加することによって生成されたコードを使用しています。呼び出しコードを提供できます。私は、WSDL が利用可能でないと本当に有用であるとは確信していません。
機能していない SOAP メッセージ
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<s:Body>
<addPackageItems xmlns="http://www.docfinity.com/webservices/BpmClientWebServices/">
<processInstanceId>87499</processInstanceId>
<packageItemDto>
<packageItemName>document</packageItemName>
<properties>
<name>documentId</name>
<stringValue>0c7eb1cb3a94986f013ae5c4d8777fde</stringValue>
</properties>
<type>DocFinityDocument</type>
</packageItemDto>
</addPackageItems>
</s:Body>
</s:Envelope>
ワーキングソープメッセージ
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<s:Body>
<tns:addPackageItems xmlns:tns="http://www.docfinity.com/webservices/BpmClientWebServices/">
<processInstanceId>87499</processInstanceId>
<packageItemDto>
<packageItemName>document</packageItemName>
<properties>
<name>documentId</name>
<stringValue>0c7eb1cb3a94986f013ae5c4d8777fde</stringValue>
</properties>
<type>DocFinityDocument</type>
</packageItemDto>
</tns:addPackageItems>
</s:Body>
</s:Envelope>