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

