【发布时间】:2012-03-21 12:06:15
【问题描述】:
我对 Java EE6 世界很陌生(不过,JEE5,我很了解)。
我的环境是 Glassfish 3.1.2
我正在尝试将 servlet 对象注入 CDI bean(使用 @Named 和 @*Scoped 注释的 pojo)中,该对象被 ${nameofBean.nameofMethode(par1...)} 调用的 jsp 调用
我试试这个:
@Inject
private ServletContext context; (or HTTPServletRequest or HttpServletResponse (for calling sendRedirect))
这给了我以下部署异常:WELD-001408 Unsatisfied dependencies for type [ServletContext] with qualifiers [@Default] at injection point
显然,在 JBoss 上,这可能有效:http://docs.jboss.org/seam/3/servlet/latest/reference/en-US/html/injectablerefs.html
我的一个想法是使用@Produces,但直到现在,我还没有弄清楚该怎么做。
也许是我为什么要这样做的一个词:
我想做一些 CRUD 的东西,但我真的不知道如何处理异常。所以我的想法是:创建一个 CDI Bean,由 JSP 调用并在后端调用一些 ejb。如果 EJB 抛出异常,我想在 CDI Bean 中捕获它并使用请求对象捕获它(重定向到某个地方,设置一条消息......)。通过 servlet 上下文的注入,我还可以访问 POST 参数。我想避免使用 servlet 来支持 jsps 并与 ejbs 建立连接(我认为这太老式了)。
感谢您的帮助
伊夫
【问题讨论】:
-
我的解决方案:创建一个 webfilter,将 http-response 和 -request 对象设置在具有请求范围的 cdi-beans 中。 bean 现在可以注入到其他每个 bean 中,我可以访问这两个对象。目前,该解决方案似乎对我有用。有没有cmets?
标签: servlets java-ee-6 glassfish-3 cdi