クライアント側で、PortオブジェクトをBindingProviderにキャストせずに、SOAPHandlerにオブジェクトを渡してリクエストコンテキストを取得する方法を探しています。通常、次のようなコードが表示されます。
Map<String,Object> requestContext = ((BindingProvider)port).getRequestContext();
requestContext.put("key", object);
ハンドラーのコードは次のようになります。
public boolean handleMessage(SOAPMessageContext context) {
Boolean isRequest = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (isRequest) {
// Do stuff to SOAP header based on "object"
}
return true;
}
SpringのAOPを使用してクライアント側のPortオブジェクトからの呼び出しをラップしているため、キャストが好きではありません。キャストによってエラーが発生します。