私の質問は、WSメソッド内でリクエストを取得し、文字列XML形式で解析する方法です。
これは、インターセプタ内でロギングが可能であることがわかりましたが、私のメソッド内のWS-Requestにも必要です。
私の質問は、WSメソッド内でリクエストを取得し、文字列XML形式で解析する方法です。
これは、インターセプタ内でロギングが可能であることがわかりましたが、私のメソッド内のWS-Requestにも必要です。
データベースにリクエストを保存するには、new CXF message loggingを拡張することをお勧めします。
データベースに書き込むカスタムLogEventSenderを実装することができます。
提案していただきありがとうございますが、これは実際の質問には答えません。どのように、または私は私のwebmethod要求ペイロード内に入ることができる場合。 – Stephan
一度メソッドが呼び出されると、DBにデータを保存する必要があるのと同様の要件がありました。私はThreadLocal
とLoggingInInterceptor
とLoggingOutInterceptor
を使っていました。例えば、LoggingInInterceptorでは、メッセージをThreadContextに設定し、WebサービスメソッドではLoggingContext.getMessage()
を使用し、LoggingOutInterceptorではメッセージを削除するために使用しました(注:ここで注意する必要があるのは、スレッドコンテキストからメッセージを明示的に削除する必要があります。あなたはメモリリークで終わるだろう、と、クライアント側のコードインターセプタの包み逆転します。
public class LoggingContext {
private static ThreadLocal<String> message;
public static Optional<String> getMessage() {
return Optional.ofNullable(message.get());
}
public static void setMessage(final String message) {
LoggingContext.message = new ThreadLocal<>();
LoggingContext.message.set(message);
}
}
ないこの質問への答えが、私は最終的にはJAXBを使用して、私のタスクを実行するために達成し、いくつかの操作を行いますそこに。
あなたがプレーンxmlを望むなら、なぜjax wsを使うのですか?何のためにxmlが必要ですか? –
私は欲しいですか?私のservicemixログに見られるリクエストの実際のペイロード。 「何のために必要なの?」という質問に。将来の処理のためにデータベースにペイロードを保存します。 – Stephan
私はここを参照してください(http://stackoverflow.com/questions/11038313/how-to-get-incoming-outgoing-soap-xml-in-a-simpleway-using-apache-cxf)上記のようにインターセプタからのメッセージが、私は私のWSメソッドのペイロードが必要です。 – Stephan