Barry, Thanks for your response. As you see in Chris' notes, it is safer to move the declaration to local. So instead of
<%! DataSource ds; %> <% try { Context initCtx = new InitialContext(); I tried changing it to <% DataSource ds = null; try { Context initCtx = new InitialContext(); And it worked OK. Jason On Wed, Feb 13, 2008 at 4:51 PM, Propes, Barry L <[EMAIL PROTECTED]> wrote: > What is this? > > <%! DataSource ds; %> > > Do you need that on your page? I never run such a reference on mine. I've > also imported the following packages - > > <%@ page import="javax.naming.Context,javax.naming.InitialContext, > javax.naming.NamingException,javax.sql.DataSource" %> > > My JSP config looks like: > ---------------------------------------- > Context initCtx = new InitialContext(); > Context envCtx = (Context) initCtx.lookup("java:comp/env"); > // Look up our data source > DataSource ds = (DataSource) > envCtx.lookup("jdbc/myoracle"); > // Allocate and use a connection from the pool > Connection connection = ds.getConnection(); > > > ----------------- > and do you have this "DBDevTrackConnDS" set up in your server.xml file -- > either in the context tag or your respective META-INF directory's .xml files > ? > > -----Original Message----- > From: Jason Ling [mailto:[EMAIL PROTECTED] > Sent: Wednesday, February 13, 2008 3:40 PM > To: users@tomcat.apache.org > Subject: DataSource binding for JSP > > > I have the following jsp file on tomcat 5.5.23. When the file is invoked, > it only returns the header row of the table (First Name, Last Name, User > Name, Password), but does not return the expected records from the Oracle > data table. The entire jsp file is as follows: > > <%@ page session="false" %> > <%@ page import="java.sql.*, javax.sql.*, javax.naming.*, java.io.*, > java.util.*" %> > > <%! DataSource ds; %> > > <% > try { > Context initCtx = new InitialContext(); > Context envCtx = (Context) initCtx.lookup("java:comp/env"); > ds = (DataSource) envCtx.lookup("jdbc/DBDevTrackConnDS"); > } catch (NamingException e) { > e.printStackTrace(); > } > %> > > <HTML> > <HEAD> > <TITLE>Display All Users</TITLE> > </HEAD> > <BODY> > <CENTER> > <BR><H2>Displaying All Users</H2> > <BR> > <BR> > <TABLE border="1" cellspacing="0"> > <TR> > <TH>First Name</TH> > <TH>Last Name</TH> > <TH>User Name</TH> > <TH>Password</TH> > </TR> > > <% > String sql = "SELECT FirstName, LastName, UserName, Password FROM > tomcats"; > try { > Connection con = ds.getConnection(); > > Statement s = con.createStatement(); > ResultSet rs = s.executeQuery(sql); > > while (rs.next()) { > out.println("<TR>"); > out.println("<TD>" + rs.getString(1) + "</TD>"); > out.println("<TD>" + rs.getString(2) + "</TD>"); > out.println("<TD>" + rs.getString(3) + "</TD>"); > out.println("<TD>" + rs.getString(4) + "</TD>"); > out.println("</TR>"); > } > rs.close(); > s.close(); > con.close(); > } > catch (SQLException e) { > } > catch (Exception e) { > } > %> > > </TABLE> > </CENTER> > </BODY> > </HTML> > > Checking the log file, the stdout file has the following: > > javax.naming.NameNotFoundException: Name jdbc is not bound in this Context > at org.apache.naming.NamingContext.lookup(NamingContext.java:770) > at org.apache.naming.NamingContext.lookup(NamingContext.java:153) > at org.apache.jsp.jsp.dblogin_jsp._jspService(dblogin_jsp.java:55) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > at org.apache.jasper.servlet.JspServletWrapper.service( > JspServletWrapper.java:328) > at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java > :315) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:269) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:188) > at org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:210) > at org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:174) > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:127) > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java:117) > at org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:108) > at org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java:151) > at org.apache.coyote.http11.Http11AprProcessor.process( > Http11AprProcessor.java:834) > at > org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process > ( > Http11AprProtocol.java:640) > at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java > :1286) > at java.lang.Thread.run(Unknown Source) > > I have been using the same try{} blocks in my servlet files. The > connection > to the same database has always be successful and the data records are > retrieved. I figure that the only difference between the servlets and the > jsp is that the servlet has the binding information for the database in > the > appName/META-INF/context.xml file: > > <Context> > <Resource name="jdbc/DBDevTrackConnDS" > auth="Container" > type="javax.sql.DataSource" > username="testUser" > password="testPW" > driverClassName="oracle.jdbc.driver.OracleDriver" > url="jdbc:oracle:thin:@sb.lehman.cuny.edu:1521:idm0" > maxActive="8" > maxIdle="4" /> > </Context> > > and the reference information in the appName/WEB-INF/web.xml file: > > <web-app> > <resource-ref> > <description> > Resource refrence to a factory for java.sql.Connection instnaces > that may be used for talking to a particular database that is > configured in the server.xml file. > </description> > <res-ref-name> > jdbc/DBDevTrackConnDS > </res-ref-name> > <res-type> > javax.sql.DataSource > </res-type> > <res-auth> > Container > </res-auth> > </resource-ref> > > What is wrong or missing with the jsp file? Apparently the jsp file is > not > aware of the context.xml file and the web.xml file. How do I convey the > same binding and reference information to the jsp container and the jsp > page? > > Many thanks for helping me out! > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >