問題タブ [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.
java - jetty+guice で実行可能な戦争
これは、サーブレットを接続するためのコードから、jettyを埋め込むためのコードをより適切に分離することに関する質問です。
実行可能な war、つまり、既存の Jetty コンテナーにドロップできる war ファイル、または のようなコマンドを使用してスタンドアロンで実行できるように、このサンプル コードを適応させようとしていますjava -jar webapp-runnable.war
。サンプル コードは、次の 2 つのブログ投稿に属しています: No.1、No.2。
GuiceServletのマニュアルに従ってweb.xml
andを作成しましたGuiceServletContextListener
(以下を参照) mvn jetty:run
。を実行しようとするとmvn jetty:run
、次のエラーが表示されます。
これが私のコードです。前に述べたように、私はgithub のこのレポから始めました。
1) AbstractModule 型の匿名内部クラスを抽出し、com.teamlazerbeez.http.HttpServerMain
それを新しい class に入れましたcom.teamlazerbeez.http.HttpServerModule
。このクラスは、(l36) で Guice Injector を作成するときにインスタンス化されるようになりましHttpServerMain
た。
2)私web.xml
:
3)私com.teamlazerbeez.http.GuiceServletConfig
:
私の質問:HttpServerMain
main
メソッドをリファクタリングHttpServerModule
するにはどうすればよいGuiceServletConfig
でしょうか。そしてGuiceServletConfig
、これが機能するにはどのように見える必要がありますか?
jersey - Guice ServletModule からカスタム Jersey ViewProcessor をインストールする
jersey-guiceを使用して、一連の Guice (サーブレット) モジュールを使用してすべての Jersey 1 リソースをセットアップしています。
Guice を使用して注入したい構成オブジェクトに依存するカスタムViewProcessor
( ) を作成しました。CustomViewProcessor
これCustomViewProcessor
は、Jersey が必要とするたびに取得して使用する必要があります。
CustomViewProcessor
が必要なときにいつでも Guice で作成されたインスタンスをフェッチするように Jersey に指示するにはどうすればよいViewProcessor
ですか? Module
Guiceのconfigure
メソッド内でこれらすべてを設定したいと考えています。
wso2 - WSO2 AS ガイダンス統合
WSO2 アプリケーション サーバーを使用して Web サービスを展開しています。プロジェクトで Guice を使用したいと思います。axis2 guice 統合に関する maksimブログを読みました。彼はインジェクションに web.xml を使用しましたが、wso2 で web.xml を変更する方法がわかりません。
ありがとう
aop - GUICE を使用した Shiro AOP が機能しない
セキュリティのために Shiro を使用するサービスを作成しています。Guice も組み込みました。で GUICE インジェクターを作成しますGuiceServletContextListener
。
また、Guice Container と GuiceShiroFilter を次のようにバインドしますJerseyServletModule
。
しかし、Shiro からの注釈は機能していないようです。
でチェーンを構成しますMyShiroWebModule
。
したがって、「ROLES」フィルターを使用すると、次の AOP 方式でロールがスキャンされます。
@RolesAllowed("SomeFancyRole")
(編集を参照)
しかし、GUICE Shiro AOP 機能を活用したいと考えています。私は自分自身の代わりにベースの ShiroAOPModule を試しました -> 私は構成が呼び出されているかどうかを確認するためのデバッグ用です。
@User, @Authenticated etc.
この機能をどのように組み込むことができますか? 前もって感謝します
編集:
@RolesAllowed
以下を追加したおかげで、が機能していることがわかりました。
params.put(PackagesResourceConfig.PROPERTY_RESOURCE_FILTER_FACTORIES, "com.sun.jersey.api.container.filter.RolesAllowedResourceFilterFactory");
JerseyServletModule で
serve("/v1/*").with(GuiceContainer.class, params);
そのため、Shiro からの AOP はまだフィルタリングされていません。
java - Guice を使用して Web アプリケーションでサービスを開始/停止するにはどうすればよいですか
私は Web アプリケーションを構築しており、Guice Servlet 拡張機能を使用してすべてをブートストラップしています。
私が見つけたユーザーガイドと例に従って、 myweb.xml
には を拡張する単一のリスナーがありますGuiceServletContextListener
。リスナーで、ここで説明されているようにインジェクターを作成します。
私のアプリには、サーブレットコンテキストがそれぞれ初期化および破棄されるときに、初期化および破棄する必要があるいくつかのコンポーネントがあります。例としては、キャッシュ マネージャー、サードパーティ API からデータを取得するクライアント、Cassandra ストアにアクセスするクライアントなどがあります。
これらのコンポーネントを初期化/破棄する適切な場所を見つけようとしています。Guice がなければ、おそらくコンテキスト リスナーで直接それを行うでしょうが、Guice はそれを促進しないようです。
私が見たのは、サービスごとにサーブレット フィルターを使用していることです。各フィルターに init/destroy を実装することで、各サービスを開始および停止できます。ただし、実際にフィルタリングする必要がない場合、サーブレットのライフサイクルにフックするだけではやり過ぎのように思えます。
他のオプションはありますか?
java - Guice サーブレット単体テスト
背景:guice
フレームワークを使用してサーブレットを開発していますguice-servlet
。次の方法でサーブレットをテストしたいと思います。
- サーブレット単体テスト: get/post リクエストを提供することにより、サーブレットを他の依存関係から分離し、クライアントをシミュレートする
- サーブレット統合テスト: クライアントをシミュレートしますが、サーブレットの分離は行いません。また、統合テストの一環として、Guice 自体との統合をテストしたいと考えています。
質問:上記の両方の種類のテストを実行できるサーブレット テスト フレームワークを探しています。
その間、 を調べましたHttpUnit
が、接続する方法が見つかりませんでしGuice
た。サーブレットは に登録できますがServletRunner
、クラス名で提供されます。これは、ServletRunner が (依存関係を注入せずに) それらをインスタンス化することを意味します。
また、tadedon
プロジェクトのGuiceServletMockModuleを見つけました。まさに私が探しているもののようです。しかし、それがまだ維持されているかどうかはわかりません。たとえば、maven リポジトリから maven パッケージを取得できませんでした。
ありがとう
google-app-engine - Guice 4.0-beta5 が Sitebricks 0.8.10 で動作しない
Guice と Sitebricks (4.0-beta5) および (0.8.10) の最新バージョンを使用して、Sitebricks Web サイトのサンプル HelloWorld アプリを GAE にデプロイしようとしましたが、インジェクションは失敗しました。Google App Engine のログには次のように表示されます。
com.google.inject.util.internal パッケージが 4.0-beta5 から完全に欠落しているように思えます。それが ClassNotFoundException の原因です。4.0-beta5 の代わりに 3.0 を使用すると、問題が解決します。
両方の最新バージョンをどうにかして使用することは可能ですか? どちらも「Google 生まれのプロジェクト」であることを考えると、互換性がないことに驚かされます。Sitebricks に代わるより良い方法はありますか?
PS 余談ですが、最近 (2015 年 1 月) のコミットがいくつかあったにもかかわらず、sitebricks.org はダウンしています... プロジェクトはまだ積極的に維持されていますか?