[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Could not find datasource message in client JPA although EAR

ezanih do-not-reply at jboss.com
Tue Dec 23 23:48:06 EST 2008


Hi there

I created a very simple JPA Entity Project (BiddingTest) involving one bid entity (Bidder.java) and one bid client (BidClient.java) from the JPA Project Wizard in Eclipse Ganymede and JBoss 4.2.2.GA. I use Hibernate 3.3.1, Hibernate Annotations 3.4 and Hibernate Entity Manager 3.4.

My BiddingTestEAR was built and deployed succesfully by the JBoss Server and I checked in my OracleXE db and found out that it had successfully managed to create the BIDDER table.

However my problem occurs when I try to populate this BIDDER table from a JPA Test Client. The JPA Test Client keeps giving me the exception :

javax.persistence.PersistenceException: [PersistenceUnit: BiddingTest] Unable to build EntityManagerFactory

and 

Caused by: org.hibernate.HibernateException: Could not find datasource

and 

Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial.


Here is my console output:


  | [BidClient] : creating EntityManagerFactory...
  | log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
  | log4j:WARN Please initialize the log4j system properly.
  | javax.persistence.PersistenceException: [PersistenceUnit: BiddingTest] Unable to build EntityManagerFactory
  | 	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
  | 	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
  | 	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
  | 	at Main.main(Main.java:43)
  | Caused by: org.hibernate.HibernateException: Could not find datasource
  | 	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79)
  | 	at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
  | 	at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
  | 	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)
  | 	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)
  | 	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)
  | 	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
  | 	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
  | 	... 4 more
  | Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
  | 	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
  | 	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
  | 	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
  | 	at javax.naming.InitialContext.lookup(InitialContext.java:351)
  | 	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
  | 	... 11 more
  | [BidClient] : closing entity manager and factory...
  | Exception in thread "main" java.lang.NullPointerException
  | 	at Main.main(Main.java:88)
  | 


This is my persistence.xml file :


  | <?xml version="1.0" encoding="UTF-8"?>
  | <persistence>
  |    <persistence-unit name="BiddingTest">
  |       <jta-data-source>java:/OracleXE1_DS</jta-data-source>
  |       <properties>
  |          <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
  |          <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
  |       </properties>
  |    </persistence-unit>
  | </persistence>
  | 


This is my oracle-ds.xml file :


  | <?xml version="1.0" encoding="UTF-8"?>
  | <datasources>
  |   <local-tx-datasource>
  |     <jndi-name>OracleXE1_DS</jndi-name>
  |     <connection-url>jdbc:oracle:thin:system/system at localhost:1521:XE</connection-url>
  |     <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
  |     <user-name>system</user-name>
  |     <password>system</password>
  |     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name> 
  | 	<metadata> 
  | 		<type-mapping>Oracle10g</type-mapping> 
  | 	</metadata>
  |   </local-tx-datasource>
  | </datasources>
  | 

This is my BidClient.java file:


  | 
  | package my.com.eperolehan.client;
  | 
  | 
  | import javax.persistence.EntityManager;
  | //import javax.persistence.EntityTransaction;
  | import javax.persistence.EntityManagerFactory;
  | import javax.persistence.Persistence;
  | //import javax.persistence.PersistenceContext;
  | 
  | import my.com.eperolehan.entities.Bidder;
  | 
  | import org.apache.log4j.Level;
  | import org.apache.log4j.Logger;
  | import org.apache.log4j.ConsoleAppender;
  | import org.apache.log4j.SimpleLayout;
  | 
  | 
  | public class BidClient {
  | 
  | 	
  | 	private static EntityManagerFactory f;
  | 	
  | 	//@PersistenceContext(unitName="BiddingTest")
  | 	private static EntityManager em;
  | 
  | 	
  | 	public static void main(String[] args) {
  | 
  | 		
  | 		Logger log = Logger.getLogger(BidClient.class);
  | 		log.setLevel(Level.WARN);
  | 		
  | 		SimpleLayout layout = new SimpleLayout();
  | 		ConsoleAppender appender = new ConsoleAppender(layout);
  | 
  | 		
  | 		log.addAppender(appender);
  | 		
  | 		
  | 	        try {
  | 	        		
  | 	        		
  | 	        		System.out.println("[BidClient] : creating EntityManagerFactory...");
  | 	        		log.debug("[BidClient] : creating EntityManagerFactory...");
  | 	        		f = Persistence.createEntityManagerFactory("BiddingTest");
  | 	        		System.out.println("[BidClient] : Created.");
  | 	        		log.debug("[BidClient] : Created.");	
  | 	        		System.out.println("[BidClient] : creating EntityManager...");
  | 	        		em = f.createEntityManager();
  | 	        		System.out.println("[BidClient] : Created.");
  | 	        		log.debug("[BidClient] : Created.");
  | 
  | 	        		
  | 	        		em.getTransaction().begin();
  | 
  | 			        
  | 			        try {
  | 			        	System.out.println("[BidClient] : creating a Bidder...");
  | 			        	Bidder bidder = new Bidder();
  | 
  | 			            		bidder.setBidderName("Bidder No 1");
  | 			            		bidder.setBidSessionId(1);
  | 
  | 
  | 			            em.persist(bidder);
  | 			            em.getTransaction().commit();
  | 			            System.out.println("[BidClient] : Bidder created and commited.");
  | 			            log.debug("[BidClient] : Bidder created and commited.");
  | 			            
  | 			        } catch (Exception ex) {
  | 			        	em.getTransaction().rollback();
  | 			        }
  | 
  | 			        System.out.println("[BidClient] : Bidder person created and persisted successfully.");
  | 	           		 log.debug("[BidClient] : Bidder person created and persisted successfully.");
  | 	        
  | 	        } catch (RuntimeException e) {
  | 	            
  | 	            		e.printStackTrace();
  | 	        
  | 	        } finally {
  | 	        	
  | 	        	
  | 	        	
  | 	        }
  | 
  | 
  | 	        System.out.println("[BidClient] : closing entity manager and factory...");
  | 	        log.debug("[BidClient] : closing entity manager and factory...");
  | 	        em.close();		
  |         	//f.close();
  |         	System.out.println("[BidClient] : Closed.");
  |         	log.debug("[BidClient] : Closed.");
  | 		
  | 	}
  | 	
  | 	
  | }
  | 

Please can help me. Thank you very much in advance!

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

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



More information about the jboss-user mailing list