問題タブ [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.
guice - Guice:すでにバインドされているオブジェクトによって動的に取得されるクラスをバインドする方法は?
Guiceを使用して小さなWebフレームワークを開発しています。初期化されると、getControllerClasses()メソッドを公開するRouterオブジェクトがあります。Guiceを使用してそれらをbind()するには、動的に返されたすべてのクラスをループする必要があります。
ルーターをバインドします:
しかし、モジュールでバインドされたルーターインスタンスを取得するにはどうすればよいのでしょうか。そのため、getControllerClasses()メソッドによって返されるクラスをバインドすることもできます。
モジュールでルーターインスタンスを取得できる唯一の方法は、このインスタンスを最初のモジュールでバインドしてから、セッターで@Injectを使用して2番目のモジュールに注入することです。
モジュール1
モジュール2
メソッドが呼び出され、Routerインスタンスは適切に初期化されますが、コントローラークラスのバインドは失敗します。Guiceライフサイクルのこのステップでは、module2のバインダーインスタンスがNULLのようです。
動的に取得されたクラスをバインドするにはどうすればよいですか?それらのクラスは、すでにバインドされているオブジェクトによって返されますか?
java - guice サーブレットはシングルトンではありません
大変なことが起きています
私のプロジェクトには 2 つのサーブレットがあります。そのうちの 1 つは単純に post メソッドを持ち、ファイルのアップロードを処理します。最近、もう 1 つ追加しました。get メソッドと post メソッドがあります。
ここに2番目のサーブレットコードがあります
今-これが私を手に入れているものです
なんらかの理由で - これは @Singleton としてマークされていますが - サーブレット アドレスは間違いなく別のものとして戻ってきます。post メソッドで null ポインターにヒットしたときに最初にこれに気付きました。get メソッドを呼び出すたびに、返されるサーブレットのインスタンスにすべてのフィールドが入力されます。post メソッドを呼び出すたびに、返されるサーブレットのインスタンス (別のインスタンス) にフィールドが入力されていません (null だけで、注入されなかったようです)。
ここで何が起こっているのかを理解するのに本当に苦労しています。このサーブレットのインスタンスは、guice コンテキストの外で作成されたようです。問題があれば - JBoss 7.1 を使用しています
(すべてのXXXについて申し訳ありません。実際の名前を投稿できるかどうかわかりません)
ここに私のguiceセットアップの残りがあります
これがサーブレットモジュールです
gwt - サーブレットから返されたテキストから "\n (引用符と改行シーケンス) が失われました
サーブレットからテキストを返していますが、" 文字で終わる行を除き、正常に動作しています。これらの行により、引用符とそれに続く改行文字が失われます。この問題の原因または修正方法について何かアイデアはありますか?
java - ジャージリソースをguiceでオーバーライドする
GuiceServletContextListenerでguiceで囲まれたジャージリソースをオーバーライドするメソッドを探しています。私が動作させようとしている私のコード:
しかし、残念ながら、これは機能しません。実装へのインターフェイスのような形でジャージリソースをバインドすることはできませんが、機能するだけbind(BookImpl.class)
です。しかし、そのようなバインディングを上書きすることは不可能です。でオーバーライドしようとするとbind(BookImpl.class)
、@ Pathが一意であるはずなbind(BookUserImpl.class)
のに、エラーが発生します。Conflicting URI templates. The URI template /books/{key} for root resource class.
それで、私のユースケースの解決策はありますか?
java - Guice 3.0を使用してJSPにサービスを提供するにはどうすればよいですか?
GuiceからJSPを提供しようとしています。これを行う方法の基本的な例は見つかりません!
私のセットアップ:
web.xml
org.example.Bootstrap(...のようなもの)
org.example.BootstrapModule(...のようなもの)
MainServletで、私は次のようなことをします:
また
また
また
test.jspがあります(Mavenを使用してwebapp/test.jsp
います)。
動作しません!私はいつも次のようなエラーで終わります:
Guiceがorg.apache.jasper.servlet.JspServletに渡す情報は、JSPが機能するために必要な情報ではないようです。
私は何が欠けていますか?org.apache.jasper.servlet.JspServletを手動で指定する必要もありますか?GuiceからJSPを正しく提供するには何が必要ですか?
google-app-engine - Java GAE バックエンド サーブレットでの Guice インジェクションの使用
私の GAE Java アプリにはジレンマがあります。GAE バックエンドによって処理されるサーブレットを作成しようとしていますが、サーブレットのすべてのフィールドを開始するためにGuice 依存性注入も使用する必要があります。私は複数のアプローチを試しましたが、どれも私のためにトリックをしているようには見えません。
私は最初にサーブレットでSitebricksを使用しようとしましたが、そうすると、バックエンド URL が照会されているときに、GAE がクラスを正当なサーブレットとして検出できなくなるようでした: 404 Not Foundがバックエンドから常に返されます。それにもかかわらず、同じ URI パスがフロントエンド インスタンスで正常に機能するため、クラスが Sitebricks アノテーションで正しくアノテーション付けされていることは確かです。
次に、Guice Servlet Extensionを使用してみました(このリンクを参照)。global を作成するクラスでは、次のInjector
バインディングを使用しました。
残念ながら、Sitebricks とまったく同じ問題が発生します。バックエンドでは 404 エラーが返されますが、フロントエンドでは返されません。
実行可能な最後のアプローチは、 でサーブレット マッピングを構成することweb.xml
です。伝統的なアプローチ。これにより、最終的にバックエンドが URI マッピングを検出できるようになります (これは、Google の Java GAE バックエンドのドキュメントに書かれている内容に従っています: 「バックエンドは、web.xml で定義されたサーブレットをメイン アプリケーション バージョンと共有します。」 )。残念ながら、この手順を使用して Guice インジェクションを利用することはできないため、使用することは非常に望ましくありませんweb.xml
。
2 番目と 3 番目のアプローチを組み合わせてみました。Guice サーブレット拡張機能と web.xml の両方を使用します。これにより、バックエンドから次のエラーで 500 エラーが返されました。
最後に 1 つ注意してください: backends.xmlファイルを構成して<public>true</public>
. BackendService
また、フロントエンド インスタンスが( javadoc here )を使用してバックエンド アドレスを適切に取得していることにも注意してください。
以前に尋ねたその他の関連する Stackoverflow の質問
guice - GUICEでこれを行うことができますか
次のクラスが定義されているとします。
さらに、Guice モジュールの 1 つに、愚かなバインディングがあります。
ここで、「XServlet」の 2 つのインスタンスを異なる引数で定義する ServletModule を作成する必要があります。「/x」パターンでは、「a1」で注釈が付けられた A.class にバインドされているものを使用し、「/y」パターンでは、A.class にバインドされ、「a2」で注釈が付けられているものを使用します。何かのようなもの:
「???」の代わりに何が必要ですか? それはまったく可能ですか?
regex - 正規表現を使用して、静的ファイル「/(images|css|jsp|html)/.*」を除き、すべてのリクエストをサーブレットにルーティングする方法
Google Guice を使用して、静的コンテンツを除くすべてのサーバー リクエスト (/*) をサーブレット ファイルに送信したいと考えています。必要に応じて、静的コンテンツを /static フォルダーに配置することも得意です。ルートへのサーブレット リクエストを取得する必要があるだけです。
動作するコードは次のとおりです。
ただし、/server を取り出すと、静的コンテンツも MyTemplateResource にルーティングされます。例えば:
サーブレットの URL がルートから開始できる場合でも、サーブレットのコンテンツを 1 つ以上のリソース ファイルにルーティングしながら、すべての静的コンテンツが自由に流れるようにする最善の方法は何ですか?
servlets - Apache Shiro Guice サーブレットで AUTHC フィルターの redirectUrl を構成する
Shiro から提供された AUTHC フィルターのリダイレクト URL を構成するにはどうすればよいですか? INI ファイルで構成する方法は知っていますが、ShiroWebModule の拡張機能で構成する方法を知る必要があります。ありがとう!