It seems you still have problem. You can google for the answer. One
thing I know is GlobalNamingResources should come inside the Server
element and not inside Context element.
rgds
Antony Paul
On Fri, 18 Feb 2005 22:47:06 -0800 (PST), U K Laxmi <[EMAIL PROTECTED]> wrote:
> I could able to get thro' JarperException. Thanks for
> replies.
>
> Now facing new problem.
>
> I'm getting "NameNotFoundException" - Name jdbc is
> not bound in this Context
>
> Environment what i'm using is: Apache 2, Tomcat 5.5,
> Netscape 7.2, MsAccess 2003 on windows 2000 machine.
>
> I integrated tomcat and apache as apache doesn't
> support jsps. I wrote a JSP called test-db.jsp which
> in turn calls java program TestSQLLoad.java. This
> TestSQLLoad.java performs dattabase operation, fetches
> the data from table and that data is displayed on
> Netscape thro' jsp.
>
> 1. test-db.jsp resides ina directory
> TOMCAT_HOME/webapps/web/JSP. Contents are as follows:
>
> <%@ page contentType="text/html"
> import="testpkg.TestSQLLoad"%>
>
> <html>
> <head>
> <title>DB Test</title>
> </head>
> <body>
>
> <%
> TestSQLLoad tst = new TestSQLLoad();
> tst.init();
> %>
>
> <h2>Results</h2>
> User -> <%= tst.getUser() %><br/>
> Pwd -> <%= tst.getPassword() %><br/>
> Id -> <%= tst.getID() %>
>
> </body>
> </html>
>
> 2. TestSQLLoad.java is residing in following
> directory. TOMCAT_HOME/webapps/web/classes/testpkg
> direcotry. Contents of this file are as follows:
>
> package testpkg;
>
> import javax.naming.*;
> import javax.sql.*;
> import java.sql.*;
>
> public class TestSQLLoad
> {
>
> String user = "Not Connected";
> String pwd = "no pwd";
> int id = -1;
>
> public void init() {
> try{
> Context ctx = new InitialContext();
> if(ctx == null ) {
> throw new Exception("Boom - No Context");
> }
>
> Context envCtx = (Context)
> ctx.lookup("java:comp/env");
> DataSource ds = (DataSource)
> envCtx.lookup("jdbc/db1");
>
> //DataSource ds =
> (DataSource)ctx.lookup("java:comp/env/jdbc/db1");
>
> if (ds != null) {
> Connection conn = ds.getConnection();
>
> if(conn != null) {
> user = "Got Connection "+conn.toString();
> Statement stmt = conn.createStatement();
> String q = "select name, password, id from
> user";
> ResultSet rst = stmt.executeQuery(q);
> if(rst.next()) {
> user=rst.getString(1);
> pwd=rst.getString(2);
> id = rst.getInt(3);
> }
> conn.close();
> }
> }
> }catch(Exception e) {
> e.printStackTrace();
> }
> }
>
> public String getUser() {
> return user;
> }
>
> public String getPassword() {
> return pwd;
> }
>
> public int getID()
> {
> return id;
> }
> }
>
> 3. I created a jar file using testpkg directory & put
> it in TOMCAT_HOME/common/lib as well as
> TOMCAT_HOME/webapps/web/WEB-INF/lib directory.
>
> 4. I created MsAccess database called db1.mdb and put
> it in TOMCAT_HOME/WEBAPPS/WEB/db1 directory. I created
> a table called user with fields name, password and ID.
> ID is the primary key.
>
> 5. I included following in the server.xml of
> TOMCAT_HOME/conf directory.
>
> <Context path="/db1" docBase="C:/tomcat/webapps/db1"
> debug="5" reloadable="true"
> crossContext="true">
>
> <GlobalNamingResources>
> <Resource name="jdbc/db1" auth="Container"
> type="javax.sql.DataSource"
>
> factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
> driverClassName="sun.jdbc.odbc.JdbcOdbcDrive"
> url="jdbc:odbc://localhost/db1"
> maxActive="20" maxIdle="10" maxWait="-1" />
> </GlobalNamingResources>
> </Context>
>
> 6. I included following in context.xml of
> TOMCAT_HOME/conf directory.
>
> <ResourceLink global="jdbc/db1" name="jdbc/db1"
> type="javax.sql.DataSource"/>
>
> 7. I included following in web.xml of
> TOMCAT_HOME/webapps/web/WEB-INF directory.
>
> <resource-ref>
> <res-ref-name>jdbc/db1</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
>
> 8. I copied commons-collections-2.1.1.jar,
> commons-dbcp-1.2.1.jar and commons-pool-1.2.jar into
> TOMCAT_HOME/common/lib directory.
>
> 9. I started apache, tomcat and then opened a browser
> and typed http://localhost/web/JSP/test-db.jsp.
>
> 10. I get following on the browser.
>
> "Results
> User -> Not Connected
> Pwd -> no pwd
> Id -> -1"
>
> 11. On the tomcat window where tomcat is running i'm
> getting following error.
>
> javax.naming.NameNotFoundException: Name jdbc is not
> bound in this Context
> at
> org.apache.naming.NamingContext.lookup(NamingContext.java:769)
> at
> org.apache.naming.NamingContext.lookup(NamingContext.java:152)
> at
> org.apache.naming.factory.ResourceLinkFactory.getObjectInstance(Resou
> rceLinkFactory.java:96)
> at
> javax.naming.spi.NamingManager.getObjectInstance(Unknown
> Source)
> at
> org.apache.naming.NamingContext.lookup(NamingContext.java:792)
> at
> org.apache.naming.NamingContext.lookup(NamingContext.java:139)
> at
> org.apache.naming.NamingContext.lookup(NamingContext.java:780)
> at
> org.apache.naming.NamingContext.lookup(NamingContext.java:152)
> at
> testpkg.TestSQLLoad.init(TestSQLLoad.java:22)
> at
> org.apache.jsp.JSP.test_002ddb_jsp._jspService(org.apache.jsp.JSP.tes
> t_002ddb_jsp:54)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
> .java:325)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:2
> 95)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:214)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:178)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:148)
> at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:306)
>
> at
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
> at
> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:745)
> at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.ja
> va:675)
> at
> org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:868)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
> ool.java:684)
> at java.lang.Thread.run(Unknown Source)
>
> 11. Actually if i see the source code of TestSQLLoad
> it's throwing error on line 22 where it's trying to
> get datasource.
>
> I've rpovided all the information that i can. Please
> help to solve my problem and connect to database thro'
> jsp successfully. Any help in this regard is highly
> appreciated.
>
> Thanks in advance.
>
> __________________________________
> Do you Yahoo!?
> The all-new My Yahoo! - What will yours do?
> http://my.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]