我完全失去了这个。我正在通过谷歌搜索互联网,试图找到解决这个问题的方法。我很久没有使用JBoss了,我们使用的是Seam版本2 ...不知道确切的版本。我以前从未使用过Seam,所以我对这个框架一无所知。我的老板写了大部分代码,但他已经超越了查看这段代码,并责成我解决这个问题。
所以,问题是......用户登录我们的Seam应用程序,一切都很好,但是当我们尝试从CSV文件加载用户时,就好像Seam会忘记我们是谁,然后我们得到一个错误。
我们有一个UserIdentity类,例如:
@Name("org.jboss.seam.security.identity")
@Scope(ScopeType.SESSION)
@Install(precedence = Install.APPLICATION)
@BypassInterceptors
@Startup
public class UserIdentity extends Identity {
在本课程中,我们有一行代码:
EntityManager entityManager = (EntityManager)Component.getInstance("entityManager",true);
返回null,因此我们得到一个NullPointerException(NPE)。
我认为“Component.getInstance”失败了,如果我们可以刷新它并再次取回它会很好。如果我能更新到一个更新的接缝罐并解决这个问题会很棒。
我会继续搜索互联网以获得修复,但与此同时,如果有人看到了这个问题,并且知道如何修复它,那就太棒了。 谢谢!
答案 0 :(得分:1)
使用时,Component.getInstance 方法用于获取对Seam会话bean组件的引用。
真实结束您的上下文并再次创建。因为它没有找到该上下文它返回null。
由于在会话范围中使用了EntityManager,因此您不必再次创建它。
简单,您可以将实体管理器注入,
EntityManager entityManager =(EntityManager)Component.getInstance(“entityManager”);
或
<强> @In EntityManager entityManager;