[jboss-user] [JCA/JBoss] - Can't get JCA datasource using JNDI
omar_azrat
do-not-reply at jboss.com
Fri Jan 5 16:39:27 EST 2007
Actually I'm deploying a website for JBoss. Mi commitment is make this site to work with this databases:
ORACLE
MYSQL
SQL SERVER
My fellow and me wrote the access to the database in a simple class (this project has no entity-beans). Servlets and a java application need access to database. Our current database is mysql.
Finding out a way to configure access to database, I found that using JCA its possible to bind connections to databases using files with the name in the format *ds.xml.
What I did is to work with a file I called DB-ds.xml (according JCA standard) and wrote an initial mysql configuration. Below is the content of this file:
| <?xml version="1.0" encoding="UTF-8"?>
| <!-- WEBCOMJAFL. Archivo de conexión a la base de datos. -->
| <datasources>
| <!-- Datasource config for MySQL using 3.0.9 available from:
| http://www.mysql.com/downloads/api-jdbc-stable.html-->
| <no-tx-datasource>
| <jndi-name>comp/env/jdbc/WCJFDB</jndi-name>
| <use-java-context>true</use-java-context>
| <connection-url>jdbc:mysql://localhost/webcomjafl</connection-url>
| <driver-class>com.mysql.jdbc.Driver</driver-class>
| <user-name>webcomjafl</user-name>
| <password></password>
| <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
| </no-tx-datasource>
| </datasources>
Data in this file is fine (user=webcomjafl, no password)
After copying this file into server\default\deploy directory of JBoss, I got this message:
15:59:25,727 INFO [WrapperDataSourceService] Bound ConnectionManager 'jboss.jca
| :service=DataSourceBinding,name=comp/env/jdbc/WCJFDB' to JNDI name 'java:comp/env/jdbc/WCJFDB'
What means that binding was successful.
I've tried calling this resource (comp/env/jdbc/WCJFDB) from a java-test application, but I had an error message:
before
| javax.naming.NameNotFoundException: comp not bound
| at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
| at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
| at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
| at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
| at javax.naming.InitialContext.lookup(InitialContext.java:392)
| at devenet.com.workflow.DBConnectionTest.main(DBConnectionTest.java:38)
This is my source code:
public static void main(String[] args) {
| try {
|
| InitialContext ctx = new InitialContext();
| System.out.println("before");
| Object connection = ctx.lookup("java:comp/env/jdbc/WCJFDB");
| System.out.println("after");
|
| } catch (Exception e) {
| // TODO Auto-generated catch block
| e.printStackTrace();
| }
|
| }
Notes:
This is my jndi.properties file:
### JBossNS properties
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| java.naming.provider.url=jnp://localhost:1099
| java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
I've installed JBoss version 4.0.5, with all components (full), with jmx interfaces no secured (jmx-console.war, web-console.war, jmx-invoker-service, http invoker).
I'll be thankful for any help.
Néstor Arias
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3998407#3998407
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3998407
More information about the jboss-user
mailing list