title: Issue while getting the Hibernate EntityManagerFactory in Weblogic (EJB3 Application)
body: <p><strong>I am facing an issue when am getting the EntityManagerFactory from JPA from the following code in weblogic StartUp Class</strong></p>
  
  <hr>
  
  <pre><code>    EntityManagerFactory emf =
          Persistence.createEntityManagerFactory("testEJBPU");
  
      logger.info("Created EntityManagerFactory");
  
      Context ctx = new InitialContext();
  
      ctx.rebind("testEJBPU", emf);
  </code></pre>
  
  <hr>
  
  <p><strong>The above code is only returning the OPenJPA EntityManagerFactory instead of the Hibernate's
  I have the following in my Presistence.xml file</strong></p>
  
  <hr>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;!--
  Copyright (c) 2006 Illuminatics, Inc.
  All rights reserved.
  --&gt;
  
  &lt;persistence 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"
               version="1.0"&gt;
      &lt;persistence-unit name="testEJBPU" transaction-type="JTA"&gt;
          &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt;
          &lt;jta-data-source&gt;jdbc/evolvDS&lt;/jta-data-source&gt;
          &lt;properties&gt;
              &lt;property name="hibernate.ejb.cfgfile"
                        value="META-INF/hibernate.cfg.xml"/&gt;
              &lt;property name="hibernate.transaction.factory_class"
                        value="org.hibernate.ejb.transaction.JoinableCMTTransactionFactory"/&gt;
              &lt;property name="hibernate.transaction.manager_lookup_class"
                        value="org.hibernate.transaction.WeblogicTransactionManagerLookup"/&gt;
              &lt;property name="hibernate.cache.provider_class"
                        value="org.hibernate.cache.EhCacheProvider"/&gt;
              &lt;property name="hibernate.cache.jndi"
                        value="evolv-cache"/&gt;
          &lt;/properties&gt;
      &lt;/persistence-unit&gt;
  &lt;/persistence&gt;
  </code></pre>
  
  <hr>
  
  <p><strong>and am getting the following error which is related to openJPA when application starts up</strong></p>
  
  <hr>
  
  <pre><code>&lt;Apr 14, 2009 9:48:18 AM PKT&gt; &lt;Critical&gt; &lt;WebLogicServer&gt; &lt;BEA-000286&gt; &lt;Failed to invoke startup class "binder", &lt;1.0.0 fatal user error&gt; org.apache.openjpa.util.UserException: A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
  &lt;1.0.0 fatal user error&gt; org.apache.openjpa.util.UserException: A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
      at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:70)
      at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:802)
      at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:568)
      at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1185)
      at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:450)
      at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:375)
      at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:102)
      at kodo.conf.CachingMetaDataRepositoryPlugin.instantiate(CachingMetaDataRepositoryPlugin.java:29)
      at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:79)
      at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:833)
      at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:828)
      at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:539)
      at org.apache.openjpa.kernel.AbstractBrokerFactory.readResolve(AbstractBrokerFactory.java:381)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1033)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1728)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
      at weblogic.rmi.extensions.server.CBVInputStream.readObjectInternal(CBVInputStream.java:71)
      at weblogic.rmi.extensions.server.CBVInputStream.readObject(CBVInputStream.java:65)
      at weblogic.jndi.internal.JNDIHelper.copyObject(JNDIHelper.java:36)
      at weblogic.jndi.internal.WLEventContextImpl.copyObject(WLEventContextImpl.java:379)
      at weblogic.jndi.internal.WLEventContextImpl.rebind(WLEventContextImpl.java:114)
      at javax.naming.InitialContext.rebind(InitialContext.java:367)
      at com.illuminatics.test.weblogic.EntityManagerFactoryBinder.main(EntityManagerFactoryBinder.java:52)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeMain(ClassDeploymentManager.java:353)
      at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClass(ClassDeploymentManager.java:263)
      at weblogic.management.deploy.classdeployment.ClassDeploymentManager.access$000(ClassDeploymentManager.java:54)
      at weblogic.management.deploy.classdeployment.ClassDeploymentManager$1.run(ClassDeploymentManager.java:205)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      at weblogic.security.service.SecurityManager.runAs(Unknown Source)
      at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClassDeployment(ClassDeploymentManager.java:198)
      at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClassDeployments(ClassDeploymentManager.java:177)
      at weblogic.management.deploy.classdeployment.ClassDeploymentManager.runStartupsAfterAppActivation(ClassDeploymentManager.java:158)
      at weblogic.management.deploy.classdeployment.StartupClassPrelistenService.start(StartupClassPrelistenService.java:13)
      at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
  &gt; 
  </code></pre>
  
  <hr>
  
  <pre><code>My EAR Structure is as:
  
  testEJBProject.ear 
  --&gt;lib/ 
  --&gt;META-INF/ 
  -----&gt;application.xml 
  -----&gt;MANIFEST.MF 
  --&gt;testEJB.jar 
  -----&gt;META-INF/ 
  ---------&gt;hibernate.cfg.xml 
  ---------&gt;INDEX.LST 
  ---------&gt;MANIFEST&gt;MF 
  ---------&gt;persistence.xml 
  -----&gt;com/../..*
  </code></pre>
  
  <p><strong>Kindly Let me know its solution if anyone has encountered it before!</strong>
  Regards,
  Kazim Raza.</p>