Connection pooling

i want to make database connection using connection pooling technique for this i use JNDI.

i use some setting in server.xml:->

<Context path=""

docBase="webapps/myapplication"

crossContext="true"

debug="0"

reloadable="true"

trusted="false" >

<Resource name="jdbc/startvisitindia" auth="Container"

type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/startvisitindia">

<parameter> <name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>driverClassName</name> <value>com.mysql.jdbc.Driver</value>

</parameter>

<name>url</name>

<value>jdbc:mysql://localhost:3306/startvisitindia</value>

</parameter>

</ResourceParams>

</Context>

in my application web.xml:->

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/startvisitindia</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<init-param url="jdbc:mysql://localhost:3306/startvisitindia"/>

<res-auth>Container</res-auth>

</resource-ref>

my java code in which i creating connection :->

import javax.naming.*;

import javax.sql.*;

import java.sql.*;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ConnectionPool extends HttpServlet

{

String foo = "Not Connected";

int bar = -1;

public void init()

{

System.out.println("1");

try

{

System.out.println("2");

//Context ctx = new InitialContext();

Context initContext = new InitialContext();

System.out.println("3");

if(initContext == null )

{

System.out.println("4");

throw new Exception("Boom - No Context");

}

System.out.println("5");

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

Context envContext = (Context)initContext.lookup("java:/comp/env");

System.out.println("xyz");

DataSource ds = (DataSource)envContext.lookup("jdbc/startvisitindia");

/*InitialContext ctx = new InitialContext();

System.out.println("xyz"+ctx);

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

System.out.println("6");

if (ds != null)

{

System.out.println("7");

Connection conn = ds.getConnection();

System.out.println("8");

if(conn != null)

{

System.out.println("9");

foo = "Got Connection "+conn.toString();

System.out.println("10");

Statement stmt = conn.createStatement();

System.out.println("11");

ResultSet rst = stmt.executeQuery("select * from helplinedetails");

System.out.println("12");

if(rst.next())

{

foo=rst.getString(2);

bar=rst.getInt(3);

}

System.out.println("13");

conn.close();

}

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

public String getFoo() { return foo; }

public int getBar() { return bar;}

public void doPost(HttpServletRequest req,HttpServletResponse res)throws IOException, ServletException

{

System.out.println("hi");

}

}

i use these xml setting and java file but i get exception NoIntialContexException

Message was edited by:

virtex_amit

[3686 byte] By [virtex_amita] at [2007-10-3 4:46:21]
# 1

I had the same problem, i had to authenticate users of my applcation deployed onto tomcat 5.5 against data in the Oracle DB and get their roles and take them to a different part of the application. I had tried all possible combinations. Then I moved the Resource definition from the server.xml to a context.xml file and placed the file in the META-INF directory of my application and it worked fine.

s_devarakondaa at 2007-7-14 22:50:44 > top of Java-index,Core,Core APIs...