gpt4 book ai didi

java - Guice:如何创建 HttpSessionProvider

转载 作者:行者123 更新时间:2023-11-29 06:00:16 26 4
gpt4 key购买 nike

我下面有一个模块,它被定义为 Servlet 的内部类。

private static abstract class TestModule extends AbstractModule 
implements Provider<HttpSession> {

@Override
protected void configure( ) {
bind(HttpSession.class).toProvider( TestModule.class );
}
@Override public abstract HttpSession get( );
}

在 Servlet 的 doGet() 中,我创建了注入(inject)器,如下所示:

@Override 
protected void doGet( final HttpServletRequest req,
HttpServletResponse resp ) throws ServletException, IOException {

Injector injector = Guice.createInjector( new TestModule( ) {
@Override
public HttpSession get( ) {
return req.getSession( );
}
});
}

我得到错误:

1) No implementation for javax.servlet.http.HttpSession was bound.

我做错了什么?

最佳答案

问题是你这样配置:

bind(HttpSession.class).toProvider( TestModule.class );

但 HttpSession 的实际提供者是您在创建注入(inject)器时创建的匿名内部类。

要解决这个问题,只需使用 Guice 的 ServletModule:http://code.google.com/p/google-guice/wiki/ServletModule

关于java - Guice:如何创建 HttpSessionProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com