1 Reply Latest reply on Jan 20, 2011 3:58 AM by notify

    EntityManagerFactory not found in JNDI ..... again

    notify

      I have moved my live JBoss 4.2.3 Seam (jboss-seam-2.2.1.CR2) Application (live for past 18 months) to use;


      JBoss 6.0.0 Final using SEAM 2.2.1.CR3.


      I created a new project with seam-gen (2.2.1.CR3) and moved my source code and (modified) resources (xml files).


      The EAR deploys fine under jboss-6.0.0.Final and starts okay. The only WARNing message was;


      WARN  [Ejb3Configuration] Persistence provider caller does not implement the EJB3 spec correctly.PersistenceUnitInfo.ge
      tNewTempClassLoader() is null.
      



      I have the  EntityManager in each SFSB declared as;


      @PersistenceContext(unitName = "NOTiFYPiNPOiNTEntityManagerFactory", type = PersistenceContextType.EXTENDED)
      private EntityManager entityManager;
      



      I can logon (which accesses a table to autheticate) and view various pages (XHTML) that access the MySQL database and retrieve results. However when I go to one page I get;


      SEVERE [facelets.viewhandler] Error Rendering View[/journeys.xhtml]: java.lang.IllegalArgumentException: EntityManagerF
      actory not found in JNDI : java:comp/env/NOTiFYPiNPOiNT/pu
              at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManagerFactoryFromJndiOrValueBinding(ManagedPersistenceCont
      ext.java:261) [:2.2.1.CR3]
      



      In the components.xml I have;


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



      I have seen a few postings relating to this but no definite answer, as it has always worked in my previous deployment.


      Any suggestions? Thanks.

        • 1. Re: EntityManagerFactory not found in JNDI ..... again
          notify

          Found this line in the seam-gen created build.xml;


          <condition property="puJndiName" value="java:comp/env/${project.name}/pu" else="java:/${project.name}EntityManagerFactory"> 
          



          This was forcing the puJndiName to be;


          java:comp/env/NOTiFYPiNPOiNT/pu
          



          when it should be;


          java:comp/env/NOTiFYPiNPOiNT/EntityManagerFactory
          



          This has now fixed the problem.