vaibhavmishra062201
asked on
Tomcat DataSource problem
Hi
I am using Apache Tomcat 5.0.24
and trying to implement connection pooling
Successfully created data source through admin interface -
Tomcat Server->Service(Catalina)- >Host(loca lhost)->Co ntext(/NBA )->Resourc es->Data Sources
This is $CATALINA_HOME$\conf\Catal ina\localh ost\NBA.xm l file after this
++++++++++++++++++++++++++ +
<i>
<?xml version='1.0' encoding='utf-8'?>
<Context debug="5" displayName="NBA Server" docBase="NBA" path="/NBA" workDir="work\Catalina\loc alhost\NBA ">
<Resource name="jdbc/NBA" type="javax.sql.DataSource "/>
<ResourceParams name="jdbc/NBA">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqls erver://19 2.168.3.13 7:1433;Dat abaseName= NBA</value >
</parameter>
<parameter>
<name>driverClassName</nam e>
<value>com.microsoft.jdbc. sqlserver. SQLServerD river</val ue>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>
</Context>
</i>
++++++++++++++++++++++++++ +++++
This is my web.xml, i have added <resource-ref> tag
++++++++++++++++++++++++++ ++++
<i>
<?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>NBA</descript ion>
<display-name>NBA Server</display-name>
<resource-ref>
<description>NBA Database</description>
<res-ref-name>jdbc/NBA</re s-ref-name >
<res-ref-type>javax.sql.Da taSource</ res-ref-ty pe>
<res-auth>Container</res-a uth>
</resource-ref>
<servlet>
<servlet-name>RouterServle t</servlet -name>
<servlet-class>com.thq.nba p.servlets .RouterSer vlet</serv let-class>
<init-param>
<param-name>webapp-name</p aram-name>
<param-value>NBA Server</param-value>
</init-param>
<init-param>
<param-name>cost</param-na me>
<param-value>75</param-val ue>
</init-param>
<load-on-startup>1</load-o n-startup>
</servlet>
<servlet-mapping>
<servlet-name>RouterServle t</servlet -name>
<url-pattern>/router</url- pattern>
</servlet-mapping>
</web-app>
</i>
++++++++++++++++++++++++++
And this is how I am trying to create connection in my database handling class
++++++++++++++++++++++++++
<i>
Context ctx=new InitialContext();
ds=(DataSource)ctx.lookup( "jdbc/NBA" );
</i>
++++++++++++++++++++++++++
This is giving me following exception -
javax.servlet.ServletExcep tion: Name jdbc is not bound in this Context
org.apache.jasper.runtime. PageContex tImpl.doHa ndlePageEx ception(Pa geContextI mpl.java:8 25)
org.apache.jasper.runtime. PageContex tImpl.hand lePageExce ption(Page ContextImp l.java:758 )
org.apache.jsp.index_jsp._ jspService (index_jsp .java:58)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 810)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:2 98)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 810)
root cause
javax.naming.NameNotFoundE xception: Name jdbc is not bound in this Context
org.apache.naming.NamingCo ntext.look up(NamingC ontext.jav a:768)
org.apache.naming.NamingCo ntext.look up(NamingC ontext.jav a:151)
org.apache.naming.Selector Context.lo okup(Selec torContext .java:136)
javax.naming.InitialContex t.lookup(I nitialCont ext.java:3 47)
com.thq.nbap.db.DBConnecti onManager. <init>(DBC onnectionM anager.jav a:31)
org.apache.jsp.index_jsp._ jspService (index_jsp .java:47)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 810)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:2 98)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 810)
I dont know what I have missed ?
Please help
vaibhav
I am using Apache Tomcat 5.0.24
and trying to implement connection pooling
Successfully created data source through admin interface -
Tomcat Server->Service(Catalina)-
This is $CATALINA_HOME$\conf\Catal
++++++++++++++++++++++++++
<i>
<?xml version='1.0' encoding='utf-8'?>
<Context debug="5" displayName="NBA Server" docBase="NBA" path="/NBA" workDir="work\Catalina\loc
<Resource name="jdbc/NBA" type="javax.sql.DataSource
<ResourceParams name="jdbc/NBA">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqls
</parameter>
<parameter>
<name>driverClassName</nam
<value>com.microsoft.jdbc.
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>
</Context>
</i>
++++++++++++++++++++++++++
This is my web.xml, i have added <resource-ref> tag
++++++++++++++++++++++++++
<i>
<?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>NBA</descript
<display-name>NBA Server</display-name>
<resource-ref>
<description>NBA Database</description>
<res-ref-name>jdbc/NBA</re
<res-ref-type>javax.sql.Da
<res-auth>Container</res-a
</resource-ref>
<servlet>
<servlet-name>RouterServle
<servlet-class>com.thq.nba
<init-param>
<param-name>webapp-name</p
<param-value>NBA Server</param-value>
</init-param>
<init-param>
<param-name>cost</param-na
<param-value>75</param-val
</init-param>
<load-on-startup>1</load-o
</servlet>
<servlet-mapping>
<servlet-name>RouterServle
<url-pattern>/router</url-
</servlet-mapping>
</web-app>
</i>
++++++++++++++++++++++++++
And this is how I am trying to create connection in my database handling class
++++++++++++++++++++++++++
<i>
Context ctx=new InitialContext();
ds=(DataSource)ctx.lookup(
</i>
++++++++++++++++++++++++++
This is giving me following exception -
javax.servlet.ServletExcep
org.apache.jasper.runtime.
org.apache.jasper.runtime.
org.apache.jsp.index_jsp._
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
root cause
javax.naming.NameNotFoundE
org.apache.naming.NamingCo
org.apache.naming.NamingCo
org.apache.naming.Selector
javax.naming.InitialContex
com.thq.nbap.db.DBConnecti
org.apache.jsp.index_jsp._
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
I dont know what I have missed ?
Please help
vaibhav
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I changed the following code
+++++++++++++++++
Context ctx=new InitialContext();
ds=(DataSource)ctx.lookup(
+++++++++++++++++
to this code
+++++++++++++++++
Context ctx=new InitialContext();
Context envContext=ctx.lookup("jav
ds=(DataSource)envContext.
+++++++++++++++++
hey i should get those points back ..!