2017-06-29 10 views
1

Apache CXF(wsdl2java)を使用してJavaでSOAPクライアントを実装しました。私はカスタムヘッダーブロックで石鹸ヘッダーを拡張するように求められています。これは、ヘッダはのようになります方法です:WS-SecurityやWS-Addressingのは場所にすでにあるSOAPヘッダー内にカスタムヘッダーブロックを追加します。

Header structure

、私は(例えばWSS4JOutInterceptor)このためにCXFでの組み込み機能を使用しています。

カスタムブロックは、このような構造にする必要があります。

<customHeader xmlns:func="http://...." xmlns="http://...."> 
    <customElement> 
     <customValue>....</customValue> 
    </customElement> 
</customHeader> 

私はカスタムヘッダブロックを追加するかどうかはわかりません。私はここで行うには、正確にはよく分からないが

public class CustomHeaderInterceptor extends AbstractSoapInterceptor { 
    public CustomHeaderInterceptor() { 
     super(Phase.WRITE); 
     getAfter().add(WSS4JOutInterceptor.class.getName()); 
    } 

    @Override 
    public void handleMessage(SoapMessage message) throws Fault { 
     .... 
    } 

}

:私はAbstractSoapInterceptorの実装で探しています。私はまた、message.getHeaders()が空であることに気付きました。私もPhase.SENDを試しました。ヘッダーリストはまだ空です。ヘッダーの順序は、上記のとおりである必要があります。私は間違ったトラックにいますか?この権利を取得する方法についてのご意見は高く評価されます。

答えて

0

JAXBアノテーションを使用してカスタムヘッダーを作成し、WRITEフェーズのヘッダーリストに追加しました。この時点でヘッダーリストは空ですが、カスタムヘッダーが正しい順序で追加されました。

関連する問題