問題タブ [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 に答える
2798 参照

java - Guice を使用したセッション状態

私はいくつかのセッションスコープの状態を持っています。それを保持するための最初のアイデアは、セッション スコープのサーブレットでした。だから私はこのようにサーブレットをバインドします

しかし、私は例外を取得します

javax.servlet.ServletException: サーブレットはシングルトンとしてバインドする必要があります。Key[type=Foo, annotation=[none]] はシングルトン スコープにバインドされていませんでした。

では、サーブレットは ServletScopes からスコープを持つことはできませんか? セッション状態を処理する正しい方法は何ですか?

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

java - プロバイダー拡張

のようなセッションスコープのプロバイダーを作成する必要がありますServletScopes.SESSIONが、オブジェクトの構築後に1つの追加アクション(リスナーの追加など)があります。最初のアイデア-いくつかのメソッドを拡張ServletScopes.SESSIONしてオーバーライドしますが、残念ながらServletScopes.SESSIONオブジェクトであり、クラスではありません。では、ServletScopesからコードをコピーして貼り付けることなく、このようなプロバイダーを取得するにはどうすればよいですか?

0 投票する
3 に答える
3678 参照

java - リクエストをJSPに転送する

先週Guiceを発見しました...それを使って簡単なトリックを試しています。しかし、私は現在ブロックされています...

「 * 」を含むurl-patternによって提供されるサーブレットのJSPにリクエストを転送しようとしています。しかし、私はいつも「エラー404」を受け取ります:(

ステップバイステップ:



このエラーが発生します:

HTTPエラー404
/WEB-INF/layout/test.jspへのアクセスに問題があります。理由:
/WEB-INF/layout/test.jsp

「serve( "/ test")。with(TestServlet.class);」でテストしました Guiceなしで(web.xmlでサーブレットを定義して)テストしたところ、機能しまし
た...

  • 私は何を間違えましたか?

読んでくれてありがとう!

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

java - WicketでGuiceサーブレットを使用する方法

Guiceサーブレットを使用してWicketプロジェクトを設定した後、。を取得しjava.lang.IllegalStateException: filter path was not configuredます。ただし、フィルターパス構成されています。私は何かが足りないのですか?

web.xml

Guiceサーブレットリスナー:

スタックトレース(ページにアクセスしたとき):

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

guice - Google Guice サーブレットを使用した Apache Shiro の構成

Spring/Spring Security の代わりに Guice/Shiro を使い始めています。Shiro のサイトから例を見てきましたが、すべての構成例は INI ファイルの例として作成されています。Guice サーブレットは構成することを意図しているため、プレーンな Java で Shiro を構成することは可能ですか?

0 投票する
3 に答える
10087 参照

java - Guice+Tomcatの潜在的なメモリリーク

TomcatWebアプリでGoogleGuiceを使い始めたばかりですが、WARファイルがアンデプロイされるたびにcatalina.outファイルで次のことに気づきました。

May 16, 2011 5:37:24 PM org.apache.catalina.startup.HostConfig checkResources INFO: Undeploying context [/app]

May 16, 2011 5:37:24 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: A web application appears to have started a thread named [com.google.inject.internal.util.$Finalizer] but has failed to stop it. This is very likely to create a memory leak.

May 16, 2011 5:37:24 PM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE: A web application created a ThreadLocal with key of type [null] (value [com.google.inject.internal.InjectorImpl$1@10ace8d]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@7e9bed]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.

何がこれを引き起こしているのか、またはどうすればそれが起こらないようにすることができるのか誰かが知っていますか?

私はここからの指示に従っただけです http://code.google.com/docreader/#p=google-guice&s=google-guice&t=ServletModule

...そしてまだそれで何も派手なことをしていません。2つのサーブレットと1つのフィルタがあります。

ありがとう!

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

gwt - GWT RequestFactory を注入する Guice を使用して servletModule を構成する際の問題

GWT 2.3 RequestFactory を使用して、サーバー側で GUICE を使用したいと考えています。ServletModule を次のように拡張するクラスがあります。

そして私が追加したweb.xmlに:

そして、validation-api.XXX.jar を参照しています (GWT の一部であるため)。

(GWT プラグインを使用した Eclipse で) 実行すると、次のように表示されます。

jetty-6.1.x [警告] guiceFilter に失敗しました: com.google.inject.ProvisionException: Guice プロビジョニング エラー:

1) コンストラクターの注入エラー、java.lang.NoClassDefFoundError: javax/validation/ValidationException at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.(RequestFactoryServlet.java:74) at com.djay.eyeandtrack.server.EatServletModule. configureServlets(EatServletModule.java:13) com.google.web.bindery.requestfactory.server.RequestFactoryServlet を見つけながら

1 エラー [警告] コンテキストの起動に失敗しました com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@17b3de2{/,C:\5_DJAY\03_EYEANDTRACK\branches\djaysbox\EyeAndTrack\war} com.google.inject.ProvisionException: Guice プロビジョニングエラー:

1) コンストラクターの注入エラー、java.lang.NoClassDefFoundError: javax/validation/ValidationException at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.(RequestFactoryServlet.java:74) at com.djay.eyeandtrack.server.EatServletModule. configureServlets(EatServletModule.java:13) com.google.web.bindery.requestfactory.server.RequestFactoryServlet を見つけながら

com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987) で 1 エラー com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1009) で com.google.inject.servlet. ServletDefinition.init(ServletDefinition.java:108) com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82) com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102) com で.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172) の org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) の org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java) :50) org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662) で org.mortbay.jetty.servlet.Context.startContext(Context.java:140) で org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) で org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) で org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) で org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) ) org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) で org.mortbay.jetty.Server.doStart(Server.java:224) で org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle. java:50) com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186) で com.google.appengine.tools.development.AbstractContainerService で。startup(AbstractContainerService.java:157) at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:169) at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java: 119) com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:500) で com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1055) で com.google.gwt.dev.DevModeBase .run(DevModeBase.java:804) at com.google.gwt.dev.DevMode.main(DevMode.java:309) 原因: java.lang.NoClassDefFoundError: javax/validation/ValidationException at com.google.web.bindery .requestfactory.server.ServiceLayer.create(ServiceLayer.java:74) com.google.web.bindery.requestfactory.server.RequestFactoryServlet.(RequestFactoryServlet.java:88) で com.google.web.bindery.requestfactory.server.リクエストファクトリーサーブレット。(RequestFactoryServlet.java:74) com.google.web.bindery.requestfactory.server.RequestFactoryServlet$$FastClassByGuice$$54253391.newInstance() com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor. java:40) com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60) で com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) で com.google.inject. internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) で com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java) :1031) com.google.inject.internal.ProviderToInternalFactoryAdapter で。get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.Scopes$1$1.get(Scopes.java:65) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) at com.google .inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) at com.google.inject.internal.InjectorImpl$4.get( InjectorImpl.java:974) ... 26 以上 原因: java.lang.ClassNotFoundException: javax.validation.ValidationException at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(不明なソース) で java.lang.ClassLoader.loadClass(不明なソース) com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176) at java.lang.ClassLoader.loadClass(Unknown Source) ... 42 詳細

私はおそらく何かが欠けていますが、どこを見ればいいのかわかりません...ありがとう

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

guice - Guice サーブレットでセッション スコープ オブジェクトをクリアする

現在、MySessionData というセッション スコープのオブジェクトがあります。もともとログアウトするとき、私はちょうど電話しました

問題は、現在、複数のセッション スコープ オブジェクトがあり、ログアウトするために実際に必要なのは 1 つ (MySessionData) のみをクリアすることです。Guice で単一のセッション スコープ オブジェクトをクリアする方法を知っている人はいますか? これが従来のセッション オブジェクトを使用している場合は、セッション マップでキーと値のペアを null に設定するだけです。

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

jqgrid - Guice サーブレット 405 エラー: Content-type が MediaType.APPLICATION_JSON の "text/json" に設定されていないようです

jQGrid から、次のバインディングを持つ Guice サーブレットへの呼び出しを行っています。

URL を直接要求すると、JSON が表示されます。jqgrid がリクエストを実行すると、405 method not allowed レスポンスが返されます。返されるページの Content-type が「text/json」に設定されていない場合に、これが発生するのを見たことがあります (ここでは jqgrid はあまり柔軟ではありません)。

ここにリクエストがあります: Key Value Request POST /myapp/json/jqgrid/json ... HTTP/1.1 x-requested-with XMLHttpRequest Accept-Language en-us Referer http://localhost:8080/myapp/myPage ... Accept application/json, text/javascript, / Content-Type application/x-www-form-urlencoded Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (互換性あり; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)ホスト localhost:8080 コンテンツの長さ 63 接続 キープアライブ キャッシュ制御 キャッシュなし

レスポンスは次のとおりです: キー 値 レスポンス HTTP/1.1 405 Method Not Allowed Server Apache-Coyote/1.1 Allow GET,OPTIONS,HEAD Content-Type text/html;charset=utf-8 Content-Length 1034

Guice サーブレットで Content-type を「text/json」に設定し、応答を許可する方法について何か考えはありますか?

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

jakarta-ee - @ScheduleはGuiceと同等です:指定された間隔で@singletonでタスクを実行します

Google Guice、Guiceサーブレット、Jerseyを使用しています。JVMでスケジュールされたジョブを実行する簡単な方法を見つけたいと思います。「指定された間隔でバックグラウンドで実行される@Scheduleメソッドを使用した@SingletonEJB」を作成する次のEJBの例を見つけました。これはまさに私がやりたいことですが、EE依存関係を追加せずにこれを行う簡単な方法を見たかったのです。

Javaメール条件付きで自動的にメールを送信する方法