[jboss-user] [EJB 3.0] - Re: EntityManagerFactory null from JNDI?

dfarkish3 do-not-reply at jboss.com
Wed Nov 8 21:32:07 EST 2006


"rocken7" wrote : EntityManagerFactory is null in jndi.  No errors, no warnings, notta just null or "not found" etc. 
  | 
  | Yep I've seen posts on this, but no good answer. 
  | 
  | jboss-4.0.4.GA
  | 
  | So far my SLSB beans work remotely for unit tests.  
  | 
  | But ... 
  | 
  | How do you get an EntitManagerFactory from outside the container? 
  | 
  | JNDI always returns either not found or null. 
  | 
  | In my META-INF/persistence.xml file (of the deployed test jar): 
  | 
  | <?xml version="1.0" encoding="UTF-8"?>
  |   | <persistence>
  |   |    <persistence-unit name="fudb">
  |   |       <jta-data-source>java:/MySqlDS</jta-data-source>
  |   |       <exclude-unlisted-classes>false</exclude-unlisted-classes>
  |   |       <class>com.fubar.ads.clicks.model.DataDemographic</class>
  |   |       <properties>
  |   | 		  <property name="hibernate.hbm2ddl.auto" value="update"/>
  |   | 		  <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
  |   |        	  <property name="jboss.entity.manager.jndi.name" value="fudb"/>
  |   | 		  <property name="jboss.entity.manager.factory.jndi.name" value="fudbFactory"/>
  |   |        </properties>
  |   |    </persistence-unit>
  |   | </persistence>
  | 
  | 
  | All of the following test methods fail: 
  | 
  | 	
  |   | // testEMF() blows with javax.persistence.PersistenceException: No Persistence provider for EntityManager named
  |   | 
  |   | 	public void testEMF() throws Exception  
  |   | 	{
  |   | 		EntityManagerFactory emf = Persistence.createEntityManagerFactory("fudb"); 
  |   | 		assertNotNull("EntityManagerFactory not accessible.", emf );
  |   | 	}
  |   | 
  |   | 	public void testEMF2() throws Exception  
  |   | 	{
  |   | 		InitialContext ctx = getInitialContext(); 
  |   | 		Object em = ctx.lookup("java:/fudb");
  |   | 		assertNotNull("obj is null.", em );
  |   | 	}
  |   | 
  |   | 	public void testEMF2b() throws Exception  
  |   | 	{
  |   | 		InitialContext ctx = getInitialContext(); 
  |   | 		Object em = ctx.lookup("fudb");
  |   | 		assertNotNull("obj is null.", em );
  |   | 	}
  |   | 
  |   | 	public void testEMF3() throws Exception  
  |   | 	{
  |   | 		InitialContext ctx = getInitialContext(); 
  |   | 		Object em = ctx.lookup("java:/fudbFactory");
  |   | 		assertNotNull("obj is null.", em );
  |   | 	}
  |   | 
  |   | 	public void testEMF3b() throws Exception  
  |   | 	{
  |   | 		InitialContext ctx = getInitialContext(); 
  |   | 		Object em = ctx.lookup("fudbFactory");
  |   | 		assertNotNull("obj is null.", em );
  |   | 	}
  |   | 
  |   | 	public static InitialContext getInitialContext() throws Exception
  |   |    	{
  |   | 	    	Hashtable props = getInitialContextProperties();
  |   |     		return new InitialContext(props);
  |   | 	}
  |   | 
  |   | 	private static Hashtable getInitialContextProperties()
  |   | 	{
  |   | 		Hashtable<String, Object> props = new Hashtable<String, Object>();
  |   | 	      	props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory" );
  |   |       		//"org.jnp.interfaces.LocalOnlyContextFactory"
  |   | 	      	props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
  |   |       		props.put("java.naming.provider.url", "jnp://localhost:1099/");
  |   |     		return props;
  |   | 	}
  |   | 
  | 
  | And in JNDIView for Global Bindings: 
  | 
  | fudbFactory: org.jboss.ejb3.entity.InjectedEntityManagerFactory:Reference Class Name: org.jboss.ejb3.entity.InjectedEntityManagerFactory Type: nns Content: /fudbFactory
  |   | 
  |   | fudb: org.jboss.ejb3.entity.TransactionScopedEntityManager:Reference Class Name: org.jboss.ejb3.entity.TransactionScopedEntityManager Type: nns Content: /fudb
  |   | 
  | 
  | I've tried lots of random things due to my lack of full docs, so maybe my approach totally wrong ... Why null in jndi?  Is this a bug?  
  | 
  | -Jud
  | [Have you found a solution for this null problem? I tried to get EntityManager or EntityManagerFactory using jndi and in both cases I get null. Thanks, David]

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3984368#3984368

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3984368



More information about the jboss-user mailing list