Solved

How to connect to MS Access using JNDI with Tomcat 5 ?

Posted on 2003-10-28
7
314 Views
Last Modified: 2010-04-01
Hi,

I got


/usr/local/tomcat5/webapps/Advanced/connect.jsp
=========================================
<html>
<head>
<title>Connection Test</title>
</head>
<body>

<%
com.wrox.library.Connect con = new com.wrox.library.Connect();
con.init();
%>

<h2>Connection Result</h2>
<%= con.getstat() %>
</body>
</html>
=====================================================


/usr/local/tomcat5/webapps/Advanced/WEB-INF/classes/com/wrox/libraryConnect.java
====================================================
package com.wrox.library;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;

public class Connect {

String stat = "Not Connected !!";

public void init() {
try {
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Oops - No Context");

DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/BooksDB");

if (ds != null) {
Connection conn = ds.getConnection();

if(conn != null) {
stat = " Got Connection "+conn.toString();
conn.close();
}
}
}
catch(Exception e) {
e.printStackTrace();
}
}

public String getstat() {
return stat;
}
}
============================================================

/usr/local/tomcat5/webapps/Advanced/WEB-INF/web.xml
============================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<description>mySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/BooksDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
============================================================

/usr/local/tomcat5/conf/server.xml
============================================================
.......................

<Context path="/Advanced" docBase="Advanced" debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="Wrox_Advanced_log."
suffix=".txt" timestamp="true"/>
<Resource name="jdbc/BooksDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/BooksDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>180</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>username</name>
<value>booksuser</value>
</parameter>
<parameter>
<name>password</name>
<value>bookspass</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://192.1.3.139:3306/books?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
</Host>
</Engine>
</Service>
</Server>
============================================================

The above is to connect to MySQL database. How about if I wanna connect to MS Access DB ? How should I change the above code and setting or configuration ? Where should I put the MS Access file ?

FYI, I m using Tomcat 5.0.11 !!

I was trying to change the Connect.java to

=================================
package com.wrox.library;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;

public class Connect {

String stat = "Not Connected !!";

public void init() {
try {

Connection conn = null;
stat = " 1";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
stat = " 2";
conn = DriverManager.getConnection("jdbcdbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=FRONT.mdb","Admin","123456");
stat = " 3";


stat = " Got Connection "+conn.toString();
conn.close();


}
catch(ClassNotFoundException classnotfoundexception)
{
System.out.println("Could not find class: " + classnotfoundexception);
return;
}
catch(SQLException sqlexception)
{
System.out.println(sqlexception + "");
return;
}
catch(Exception e) {
e.printStackTrace();
}
}

public String getstat() {
return stat;
}
}
===========================================

but it stuck between stat = "2" and stat = " 3"

pls help !!
0
Comment
Question by:spacetime
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
7 Comments
 
LVL 3

Expert Comment

by:applekanna
ID: 9636940
JNDI is of rdirecoty systems

chek this thread
http://www.mail-archive.com/j2ee@p2p.wrox.com/msg00432.html
0
 
LVL 3

Expert Comment

by:applekanna
ID: 9636951
are you trying to do connection pooling for a db? There are other ways to do it also .

You can write your own connection pool or u can use the tutorial from java

http://developer.java.sun.com/developer/onlineTraining/Programming/JDCBook/conpool.html

Hope this helps
Cheers!
0
 
LVL 3

Accepted Solution

by:
applekanna earned 125 total points
ID: 9636962
0
 
LVL 3

Expert Comment

by:applekanna
ID: 9646718
Hi spacetime,
I think I spent some time and tried answering you question earlier before in the thread

http://oldlook.experts-exchange.com/Web/Web_Languages/JSP/Q_20774349.html

and it doesnt seem to help either ....
0
 
LVL 3

Expert Comment

by:applekanna
ID: 9653762
spacetime/eexcel

I am bring a mod in

Cheers!
0

Featured Post

[Webinar] Code, Load, and Grow

Managing multiple websites, servers, applications, and security on a daily basis? Join us for a webinar on May 25th to learn how to simplify administration and management of virtual hosts for IT admins, create a secure environment, and deploy code more effectively and frequently.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

When the s#!t hits the fan, you don’t have time to look up who’s on call, draft emails, call collaborators, or send text messages. An instant chat window is definitely the way to go, especially one like HipChat. HipChat is a true business app. An…
An introduction to the wonderful sport of Scam Baiting.  Learn how to help fight scammers by beating them at their own game. This great pass time helps the world, while providing an endless source of entertainment. Enjoy!
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question