2012-05-08 7 views
2

私は春との依存性注入には新しく、一見困難なシナリオに直面しています。ジャージー+桟橋チャレンジ付きの春

私のアプリケーションは、普通の古いソケットを介してレガシーシステムからデータを受信し、そのデータでInteresting Things(tm)を実行し、埋め込まれたJettyインスタンスを使用してHTML5 Webソケットを介してReally Interesting Results(tm)さらに、JettyサーバーはJerseyサーブレットをホストしています。このサーブレットは、興味深いすべてのもの(tm)にRESTfulなインターフェースを提供します。

Springを使用して共有DAOとアプリケーションサービスオブジェクトをレガシーサイドとジャージーリソースの両方に注入したいと思います。これには、従来のコンポーネントとJerseyの間でApplicationContextを共有する必要があります。アプリケーションコンテキストを作成し、それを私のレガシーコンポーネントに配線し、埋め込まれたJettyサーバを構成するときにアプリケーションコンテキストをJersey ServletContextに渡す必要があるようです(私は現在プログラム的に行っています)。

残念ながら、Jersey ServletContextに既存のアプリケーションコンテキストをどのように渡すことができるかは不明です。それはできますか?より良いアプローチがありますか?

これは、私がSO上で見つけた他のJersey + Jetty + Springの質問とは異なります.Jersey以外でアプリケーションのコンテキストを共有する必要はありません。

答えて

1

私は桟橋を開始するあなたのコードのようなものであることを前提としています。あなたはWebAppContextからServletContextを取得し、それにSpringContextを設定することができ

Server server = new Server(...); 
server.setHandler(new WebAppContext(...)); 

WebAppContext wac = new WebAppContext(...); 
ServletContext sc = wac.getServletContext(); 
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, springContext); 
+0

おかげで、私はそれをあげますショット! – HolySamosa

関連する問題