gpt4 book ai didi

java - 如何在 StatelessBean 中使用 ConversationScoped EntityManager

转载 作者:行者123 更新时间:2023-11-30 09:22:03 25 4
gpt4 key购买 nike

我们将 EntityManager 注入(inject) Bean(位于服务层内),如下所示:

@Inject

EntityManager entityManager

我们在 ManagedBean(位于 View 层内)中使用这些服务。一切正常。

当我们将这些服务注入(inject)到 Stateless WebService 中时,就会出现问题。 EntityManager 使用与上述代码相同的方式注入(inject)无状态 WebService。由于我的 entityManager 是 ConversationScoped,我们收到以下错误:

org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.ConversationScoped
at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:598) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:104) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

我们如何解决这个问题?我们如何在 View 层和 Web 服务层中使用相同的服务?

最佳答案

Web 服务没有可用的 Conversation 范围,它在 SO 上有很多介绍(现在不记得链接)。要么创建你自己的范围,无论如何都可以工作,要么向下移动到请求范围 EM。

关于java - 如何在 StatelessBean 中使用 ConversationScoped EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16664581/

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