jboss seam 中关于entitymanager实例为空的原因

    在seam的使用过程中,调用entitymanager的方法为:

@PersistenceContext
EntityManager em;


    但在实际调试过程中,em经常为空,造成在XHTML文件中的变量在render时出现null pointer的错误,后来google了一下,有文章说,说EntityManager变量的名称em必须与components.xml中定义的一样才行:

<persistence:managed-persistence-context name="entityManager" auto-create="true"  persistence-unit-jndi-name="@puJndiName@"/>


    就是说定义为em就是空,定义为entityManager时就可以,试了一下还是不行。后来自己经过调试,才搞清楚原因,在一个bean中调用EntityManager,不能在其bean构造器中调用,而是在其初始化后才能调用,否则就为空。

你可能感兴趣的:(java,bean,jboss,IOC,seam)