Hi,
You havent mentioned where the code is deployed.
It might be in ROOT or a webapp of your own; either way this is a case of not finding the jndi resource.
You ought to insert the resource entry in server.xml inside the Context which you plan to use the resource.
You can opt to define the resource inside the Context. The context might be defined in another file(depending on tomcat version)
at $CATALINA/conf/Catalina/localhost/YourWebApp.xml (ROOT.xml for default).


Another option would be to define a resource-ref tag inside your context to make the resource visible inside your context.

hope this helps.shoot back if you have more trouble.

Gig 'em
Ciji Isen


sandeep tandon wrote:

Hi,



We are using eclipse with tomcat to deploy our web application that uses
oracle data source. Following steps were performed to get connection
pool:



1)                   Changes in server.xml of tomcat , added these lines
in application context

<Resource name="jdbc/JOBS_DataSource" auth="Container"
type="javax.sql.DataSource"/>




<ResourceParams name="jdbc/JOBS_DataSource">

 <parameter>

   <name>factory</name>

   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

 </parameter>

 <parameter>

   <name>driverClassName</name>

   <value>oracle.jdbc.driver.OracleDriver</value>

 </parameter>

 <parameter>

   <name>url</name>

   <value>jdbc:oracle:thin:@150.235.31.48:1521:EHRS</value>

 </parameter>

 <parameter>

   <name>username</name>

   <value>jasadm</value>

 </parameter>

 <parameter>

   <name>password</name>

   <value>jasadm</value>

 </parameter>

 <parameter>

   <name>maxActive</name>

   <value>20</value>

 </parameter>

 <parameter>

   <name>maxIdle</name>

   <value>10</value>

 </parameter>

 <parameter>

   <name>maxWait</name>

   <value>-1</value>

 </parameter>

</ResourceParams>





2)                   Changes in web.xml of application, added these
lines

     <resource-ref>

            <description>JOBS Datasource</description>

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

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

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

     </resource-ref>



3)                   Used two different approaches in code to access the
datasource

First -

java.util.Hashtable props = new java.util.Hashtable();

props.put(javax.naming.InitialContext.INITIAL_CONTEXT_FACTORY,
"org.apache.commons.dbcp.BasicDataSourceFactory");

     javax.naming.InitialContext context = new
javax.naming.InitialContext(props);

Object dataSourceObject = context.lookup("jdbc/JOBS_DataSource");

     myDataSource =
(DataSource)javax.rmi.PortableRemoteObject.narrow(dataSourceObject,
DataSource.class);



//third line throws naming exception - Cannot instantiate class:
org.apache.commons.dbcp.BasicDataSourceFactory



Second-

           javax.naming.InitialContext initContext = new
InitialContext();

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

     Object dataSourceObject =
envContext.lookup("jdbc/JOBS_DataSource");

//last line throws errors -> Source not found for
NamingContext.lookup(String) line: 197

//Source not found for BasicDataSource.getConnection(String, String)
line: 532

Have placed the required commons-dbcp.jar ,commons-pool.jar ,
commons-collection.jar, classes12.jar in <tomcat-install-dir>\common\lib
folder.

Any help in this regard will be highly appreciated.



Thanks & Regards,

Sandeep Tandon

JOBS - CSPD

C-09 / X-6165









--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to