Servlet experts,

I am learning Java and servlets and ran into a challenge getting a JDBC connection

to work within a servlet.

I can get the connection to work via a simple java app without any issues. As a
servlet
I get the errors (see screen shot) below.

Using tomcat3.2 on NT4.0 w/ jdk1.3.1 and a Oracle 8.1.6 database on a remote
Unix host.

What am I doing wrong?

Thanks,
Dave


======== Screen shot ========
it's a DB test

Error: 500

Location: /examples/servlet/DBServlet

Internal Servlet Error:

java.lang.NullPointerException
        at DBServlet.service(DBServlet.java:54)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
        at org.apache.tomcat.core.Handler.service(Handler.java:287)
        at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
        at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
        at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
        at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

        at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
        at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
        at java.lang.Thread.run(Thread.java:484)
======== DBServlet.java ========
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DBServlet extends HttpServlet {
private Connection con;
private PrintWriter out;

public void init(ServletConfig conf)
            throws ServletException {
  super.init(conf);
  try{

// tried this - statement works within java app but not as servlet
//DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());

// compiles w/o error but gives null pointer exception
// on "Statement stmt = con.createStatement();" below
Class.forName ("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection("jdbc:oracle:thin:@myhost:1521:mySID",
                                  "user", "passwd");

  } catch(Exception e) {
    System.err.println("Error was: " + e);
  }
}

public void service(HttpServletRequest req,
                    HttpServletResponse res)
            throws ServletException, IOException {
    res.setContentType("text/html");
    try {
        out = res.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>DB Demo</title>");
        out.println("</head>");
        out.println("<body>");

        out.println("<h1> it's a DB test </h1>");

        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("select key from keytable");

        out.println("<UL>");

        while(rs.next()) {
            out.println("<LI>" + rs.getString("key"));
        }

        out.println("</UL>");
        rs.close();

        stmt.close();

    } catch(SQLException e) {
        out.println("An SQL Exception was thrown.");
    } catch(IOException e) {
        System.err.println("An IOException was thrown.");
    }

    out.println("</body>");
    out.println("</html>");
    out.close();
}

public void destroy(){
    try{
        con.close();
    } catch(SQLException e) {
          ;
    }
}
}

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to