[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Re: Could not find datasource message in client JPA although
ezanih
do-not-reply at jboss.com
Fri Dec 26 03:18:43 EST 2008
Thanks for the reply, jakiran.
Ok...I've been doing a lot of reading so let me share with you and all some knowledge :-) but my client still not working :-(
There are 3 ways to add jndi.properties to the client app :- (1) from the Eclipse Run Configuration menu, just add this to the VM arguments:-
| -Djava.naming.provider.url=jnp://localhost:1099
| -Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
|
or you can do like my BidClient.java coding above and put the properties in code
or you can just create a text file, name it jndi.properties and place it in root folder of client app. I've modified my app for this method so I can comment out all the InitialContext code additions and just put
| InitialContext ctx = InitialContext();
|
Much cleaner...Ok...that is settled....
Now I've read some more and it seems JBoss needs two more configurator files at the client side, namely application-client.xml and jboss-client.xml.
I've added these 2 files :-
application-client.xml:
<?xml version="1.0" encoding="UTF-8"?>
|
| <application-client xmlns="http://java.sun.com/xml/ns/j2ee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
| http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"
| version="1.4">
|
| <display-name>BiddingClient</display-name>
|
| <resource-ref>
| <res-ref-name>java:OracleXE1_DS</res-ref-name>
| <res-type>javax.sql.DataSource</res-type>
| <res-auth>Container</res-auth>
| </resource-ref>
|
| </application-client>
|
jboss-client.xml:
| <jboss-client>
| <resource-ref>
| <res-ref-name>java:OracleXE1_DS</res-ref-name>
| <res-type>javax.sql.DataSource</res-type>
| <jndi-name>OracleXE1_DS</jndi-name>
| </resource-ref>
| </jboss-client>
|
Unfortunately, still getting the same error...Unable to find data source and the jndi initial naming error, see below:
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:61)
| 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: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
| at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
| at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
| at javax.naming.InitialContext.init(InitialContext.java:223)
| at javax.naming.InitialContext.<init>(InitialContext.java:175)
| at org.hibernate.util.NamingHelper.getInitialContext(NamingHelper.java:51)
| at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
| ... 11 more
| Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
| at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
| at java.security.AccessController.doPrivileged(Native Method)
| at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| at java.lang.Class.forName0(Native Method)
| at java.lang.Class.forName(Class.java:242)
| at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)
| at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
| ... 16 more
| Exception in thread "main" java.lang.NullPointerException
| at Main.main(Main.java:106)[BidClient] : closing entity manager and factory...
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4198552#4198552
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4198552
More information about the jboss-user
mailing list