2012-02-14 9 views
1

私は、プロジェクトに接続しなければならない連邦政府の(つまり、非常に安全な良心の)SOAPサービスを持っています。私が持っている問題は、私は恐ろしいhttpsのjava axis2クライアントでクリアテキストリクエストのSOAPエンベロープをキャプチャできますか?

SEVERE: SOAP header missing 
    org.apache.axis2.AxisFault: SOAP header missing 
    at org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:180) 

Throwableのスタックトレース

私はwsdl2codeとクライアントスタブを生成し、ちょうどheaderTypeDefがあるように思われる

GetResponseTypeDef resp = stub.getRequest(requestypdef, headerTypeDef); 

を呼んでいるを取得していますということですサービスが要求するヘッダー情報が正しく入力されていること。

未加工のクリアテキストのSOAP xmlリクエストを送信したいが、エンドポイントはhttpsを使用しており、サービスへの可視性はない。だからwiresharkは本当にオプションではありません。私はLinux上で、次の使用してい

: Axis2の1.5.4 城壁1.5.1 WSS4J 1.5.10

私は、SOAPヘッダを送信していますことをかなり確信していますが、私は証明する必要がありますそれ。このサービスでは、セキュリティ、ポリシー、暗号化、デジタル署名を含むWS- *のすべてのサブプロジェクトを使用しているため、この問題が発生する可能性のある場所は約100か所しかありません。

ご協力いただければ幸いです。

答えて

1

Charlesのようなプロキシサービスを設定し、HTTPSエンドポイントにリダイレクトさせます。これにより、暗号化されてXMLペイロードが印刷される前にコールをトラップできます。副収入では、あなたの受諾率で作業したいと思うかもしれません。

0

xxxがワイヤを介して送信されていることを確認するには、org.apache.axis.transportロガーを追加することはできますか?たとえば、彼女は私のlog4j設定でどのように定義されているのですか:

<category name="org.apache.axis.transport"> 
    <priority value="DEBUG"/> 
    <appender-ref ref="CONSOLE"/> 
</category> 
関連する問題