1

実行時に、soapヘッダーの内容に基づいてEntityManagerをBeanに動的に割り当てる必要があります。私の計画は、SOAPHandlerを使用してヘッダーから情報を抽出し、それを要求スコープに格納することです。このリクエストスコープにアクセスし、格納されている変数を調べて、適切なentitymanagerを返すことを想定しているメソッド@Producerがあります。

(EntityManagerは、構造は同じですがデータが異なる異なるDBを参照します)。

私の問題はこれです:名前を保存するためにリクエストコンテキストにアクセスして( SOAPHandler側で)、もう一度、名前を取得するためにリクエストコンテキストを取得するにはどうすればよいですか?

助けていただければ幸いです。

4

1 に答える 1

2

私自身の質問に答えるには:

次のように、SOAPMessageContextに貼り付けます。

context.put( "VARIABLE_KEY"、whateverIWantObject);

context.setScope( "VARIABLE_KEY"、Scope.APPLICATION);

(Scope.APPLICATIONは重要です)。

次に、サービスレイヤーで、Webサービスコンテキストからメッセージコンテキストを取得できます。これを挿入できます。メッセージコンテキストにはオブジェクトが含まれます。

@Resource WebServiceContext webContext;

ObjectType theObject =(ObjectType)webContext.getMessageContext()。get( "VARIABLE_KEY");

于 2012-11-23T14:32:31.263 に答える