WebsphereV8でJAX-WSWebサービスを使用しています。WSがSOAP障害を返すとき、detail要素でいくつかの更新を実行したいと思います。そこで、SOAPハンドラーを作成しました。
public boolean handleFault(SOAPMessageContext messageContext) {
try {
SOAPMessage msg = messageContext.getMessage();
SOAPBody body = msg.getSOAPBody();
Detail d = body.getFault().getDetail();
Node esbException = d.getFirstChild();
// do some changes in detail element...
// save changes
msg.saveChanges();
return true;
} catch ....
return true;
}
障害メッセージを更新できますが、クライアントは元の障害を取得します(変更前)。しかし、更新された障害を(soapハンドラーで)印刷すると、変更を確認できます(たとえば、msg.writeTo(System.out)を呼び出します)。
更新された障害がwsクライアントに返されない理由はありますか?
ありがとうございました