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