users@glassfish.java.net

Having trouble getting JPA to work when migrating from Jboss to glassfish

From: <glassfish_at_javadesktop.org>
Date: Wed, 28 Jan 2009 08:25:33 PST

I have multi component ejb project where each component is packaged as jar and the project is an EAR.I have my persitence.xml something like this:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="PU1" transaction-type="JTA">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>dataSource1</jta-data-source>
    <properties>
      <property name="hibernate.ejb.cfgfile" value="/hibernate.cfg.xml"/>
    </properties>
  </persistence-unit>
  
  
  <persistence-unit name="PU2" transaction-type="JTA">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>dataSource2</jta-data-source>
    <properties>
      <property name="hibernate.ejb.cfgfile" value="/hibernate.cfg.routing.xml"/>
    </properties>
  </persistence-unit>
</persistence>


i am using @PersistenceContext(name = "persistence/PU1", unitName = "PU1")
javax.persistence.EntityManagerFactory eM
in my staless bean.

In my ejb-jar.xml i have mentioned
<session>
                        <ejb-name>SAMPLE</ejb-name>
                        <local>com.package.SAMPLE</local>
                        <remote>com.package.SAMPLERemote</remote>
                        <ejb-class>com.package.SAMPLEBean</ejb-class>
                        <session-type>Stateless</session-type>
                        <transaction-type>Bean</transaction-type>
                        <persistence-context-ref>
                                <persistence-context-ref-name>persistence/PU1</persistence-context-ref-name>
                                <persistence-unit-name>PU1</persistence-unit-name>
                        </persistence-context-ref>
                </session>

In a similar way i am using the other persistence unit and also i have configured the JDBC datasources in glassfish namely dataSource1 and dataSource2.

But when i am trying to deploy the application i am getting following error:

SEVERE: Exception occured in J2EEC Phase
com.sun.enterprise.deployment.backend.IASDeploymentException: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [persistence/PU1] in the scope of the module called []. Please verify your application.
        at com.sun.enterprise.deployment.BundleDescriptor.findReferencedPUsViaPCRefs(BundleDescriptor.java:702)
        at com.sun.enterprise.deployment.EjbBundleDescriptor.findReferencedPUs(EjbBundleDescriptor.java:862)
        at com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.getAllPersistenceUnitDescriptors(PersistenceProcessor.java:165)
        at com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.processApplication(PersistenceProcessor.java:132)
        at com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.processApplication(DeploymentEventListenerImpl.java:211)
        at com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.processEvent(DeploymentEventListenerImpl.java:172)
        at com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.notifyDeploymentEvent(DeploymentEventListenerImpl.java:122)
        at com.sun.enterprise.deployment.backend.DeploymentEventManager.notifyDeploymentEvent(DeploymentEventManager.java:79)
        at com.sun.enterprise.deployment.backend.AppDeployer.postDeploy(AppDeployer.java:392)
        at com.sun.enterprise.deployment.backend.AppDeployer.deploy(AppDeployer.java:251)
        at com.sun.enterprise.deployment.backend.AppDeployer.doRequestFinish(AppDeployer.java:148)
        at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:191)
        at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:279)
        at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:788)
        at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
        at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:223)



Can someone please tell what i am doing wrong here.
I appreciate your time.
[Message sent by forum member 'naveen2097' (naveen2097)]

http://forums.java.net/jive/thread.jspa?messageID=328694