問題タブ [guice-servlet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1068 参照

java - Guice インジェクションが ServletContextListener で機能しない

Guice インジェクションが ServletConextListener で機能しない理由は何ですか?

これが私のコードです:

もちろんそれ:

  • アプリの他のすべての場所で、インジェクションは正常に機能しています。
  • 上記のリスナーは、Guice の初期化後に表示されます。

何か案が?

0 投票する
0 に答える
722 参照

tomcat - Guice と Jersey (squarespace) の統合: ServiceLocatorGenerator がインストールされていません

コントローラーに Guice の依存関係を簡単に挿入できるように、Squarespace jersey2-guice-impl ライブラリを使用して Guice 4.0 とスムーズに統合しようとしている Jersey 2.22 アプリケーションをデプロイしています。

(以下の軽微なタイプミスをお詫びします。すべてを再入力する必要がありました。)

しかし、WebListener が原因で、起動時に次のエラーが発生します。

pom.xml から次の依存関係を使用しています。

これが WebListener です。

そして、これはweb.xmlです

Tomcat 7.0.42 で展開しています。

これは非常に単純に思えます。ロード時に順序付けの問題がある可能性があると思います。フィルタが読み込まれる前に、ServiceLocatorGenerator を設定する呼び出しが行われていない可能性があります。強制的に発生させるにはどうすればよいですか?私は何が欠けていますか?

0 投票する
0 に答える
378 参照

java - 子スレッドから Guice Request スコープのアイテムにアクセスし、それらのスレッドにローカルにスコープする良い方法はありますか?

私は現在、guice-servletを使用するようにセットアップした製品に取り組んでいます。

受け取ったリクエストごとに、一連のワーカー スレッドを生成し、それぞれが「タスク」を実行します。次に、これらのタスクの結果がマージされて、応答が生成されます。

これはかなり一般的/簡単ですが、Guice との結婚を試みたことはありません。残念ながら、事前にグラフ全体を描画する必要がある状況に陥ってしまいました。

つまり、子スレッド内で遅延バインディングを実行することはできません。これは、存在しないリクエスト/セッション スコープのものを使用しようとするためです。


相互に関連するいくつかの質問:

1)タスク スレッド内からリクエスト スコープのオブジェクトにアクセスできると非常に便利です私は最初ServletScopes.transferRequest()に誘惑されました (そして遊んでみました)が、次のように収縮しました:

通常、リクエスト スコープのオブジェクトはスレッド セーフではないため、現在のリクエスト スコープが終了するまで、このメソッドによって返される callable を別のスレッドで実行してはなりません。返された callable は、現在のスレッドがリクエスト スコープを解放するまでブロックされます。

これは、別のスレッドで後処理する (つまり、応答後に何らかの作業を行う) ためのものであり、スレッドセーフに関する懸念は有効です。

これを処理する Guicy™ の方法は、タスクのみのもの用の別のモジュールを使用して子インジェクターを作成し、要求スコープからの要求/不変のものをシードすることですか?

これを読み返すと、少しぎこちなく/重いように見えるので、おそらく間違っています。

2)ご想像のとおり、ワーカー スレッド用のカスタム タスク スコープを作成すると便利です。

ServletScopes.transferRequest ()誤っていじっていたときに何かが機能していましたが、CustomScopesページではカスタムスコープを作成しないようにアドバイスしています:

一般に、ユーザーが独自のカスタム スコープを作成しないことをお勧めします。ほとんどのアプリケーションでは、組み込みのスコープで十分です。

タスクスレッド内で物事をスコープするためのより良いアプローチはありますか?

前もって感謝します!!

0 投票する
1 に答える
749 参照

tomcat - Tomcat は Guice 構成を使用しません

Guice を構成しようとしていますが、war ファイルを Tomcat にデプロイすると、この問題が発生します。

これが私のweb.xmlの内容です:

ここに私の InjectorListener があります:

そしてここで RestModule Class :

何か案が ?