【问题标题】:Java Inject Applicationscope BeanJava 注入 Applicationscope Bean
【发布时间】:2011-12-05 04:30:24
【问题描述】:

我尝试注入一个 applicationScoped Bean。 我在JSF2 ApplicationScope bean instantiation time?Get JSF managed bean by name in any Servlet related class

在 faces 上下文中使用 jsf 方式一切都很好(WebsitesController 是 AppScoped):

FacesContext context = FacesContext.getCurrentInstance();
WebsiteController websitesController = context.getApplication().evaluateExpressionGet(context, "#{websitesController}", WebsitesController.class);

通过注入两个溢出线程,它不起作用。我的代码:

@ManagedBean(eager=true)
@ApplicationScoped
public class WebsitesController implements Serializable {
...}

现在我试过了

@ManagedBean(name = "shopController")
@ViewScoped
public class ShopController {
    {Injection-Statement}
    private WebsitesController websitesController;

我尝试了以下语句:

@ManagedProperty("#{websitesController}")
@Inject
@EJB

我的错是什么?

【问题讨论】:

    标签: jakarta-ee scope ejb javabeans inject


    【解决方案1】:

    我对 Glassfish 上的 ApplicationScope 也有疑问。你有 maven 或 ant webproject 吗? (使用 maven,我认为 ApplicationScope 不能按预期工作 - 使用 ant 可以)

    现在回答你的问题:

    当您使用 @Inject 时,您的 WebsiteController 需要 @Named 和 @ApplicationScope(其他导入为 jsf !!)并且您必须有 beans.xml - 然后激活 CDI。

    当你使用@EJB 时,你的WebsiteController 需要@Stateless。

    希望能帮到你……

    【讨论】:

      猜你喜欢
      • 2013-03-20
      • 1970-01-01
      • 2014-09-28
      • 2011-10-21
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      相关资源
      最近更新 更多