如何在 Servlet 中注入 ConversationScoped beans
我需要将 ConversationScoped
bean 注入到 servlet 中。我使用标准的简单 @Inject
标签,并使用 cid 参数调用 servlet,但是当它调用注入 bean 中的任何方法时,我收到以下错误:
org.jboss.weld.context.ContextNotActiveException
:WELD-001303
范围类型没有活动上下文javax.enterprise.context.ConversationScoped
我可以注入吗servlet 中的这些 bean 还是我只能注入 Session 和 Request 范围的 bean?
I need to inject a ConversationScoped
bean into a servlet. i use the standard simple @Inject
tag and I invoke the servlet with the cid parameter but when it invokes any method in the injected bean I get the following error:
org.jboss.weld.context.ContextNotActiveException
:WELD-001303
No active contexts for scope typejavax.enterprise.context.ConversationScoped
Can I inject these beans in servlets or I can inject only Session and Request scoped beans?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Servlet 中,上下文是应用程序上下文,这就是您失去对话范围的原因。
这是一个小型实用程序类,如果您希望在 servlet 中支持对话范围,您可以将其用作匿名类并包装请求...
In a servlet the context is application context that's why you loose conversation scope.
Here is a small utility class that you can use as an anonymous class and wrap the request with if you want conversation scope support in servlets...
如果我们不使用 Weld,那么 Java EE 中之前的答案中提出的 ConversationContext 的等价物是什么?
What is the equivalent of ConversationContext proposed in the previous answer in Java EE if we don't use Weld?