0

Web サービス コードで SOAPHeader にアクセスする必要があります (外部ライブラリを使用して、ヘッダーのセキュリティ部分からいくつかのオブジェクトを生成する必要があります)。

SOAPHandler では正常に動作しますが、実際の webservice メソッドで次のことを試みると、例外が発生します。

SOAPMessageContext soapMsgContext = (SOAPMessageContext) webServiceContext.getMessageContext();
SOAPHeader soapHeader =  soapMsgContext.getMessage().getSOAPHeader();

例外:

JAXBBlockImpl block object is already consumed. Processing cannot continue.

次のいずれかを実行したいと思います。

  1. ハンドラーでヘッダーを処理し、結果のオブジェクトを webservice メソッドに取得します。
  2. webservice メソッドでヘッダーを処理します。

これらの手順のいずれかを行う方法を誰か教えてもらえますか?

前もって感謝します。

4

1 に答える 1

0

これがかなりの解決策であるかどうかわからないので、今のところ質問を開いたままにします。

SOAPHandler では、次のようにオブジェクトをサーブレット リクエストに入れます。

servletRequest.setAttribute("param-name", myObject);

そして、webservice メソッドでは、次のように取得します。

MessageContext messageContext = webServiceContext.getMessageContext();
HttpServletRequest servletRequest = HttpServletRequest)messageContext.get(MessageContext.SERVLET_REQUEST);
myObject = (myObject) servletRequest.getAttribute("param-name");
于 2013-02-21T10:20:04.000 に答える