Tomcat unable to find my jdbc driver
843835Feb 7 2002 — edited Feb 7 2002Hi,
I'm trying to retrieve records from the database and simply display them in the browser. I'm getting the following error. I'm assuming that Tomcat3.2 cannot find my sql driver. If my assumption is right, should I change something in the server.xml, or add something to the classpath?
500 Error:
Internal Servlet Error:javax.servlet.ServletException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at SampleServlet.doGet(SampleServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)
Root cause:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.java, Compiled Code)
at java.lang.Exception.(Exception.java, Compiled Code)
at java.lang.ClassNotFoundException.(ClassNotFoundException.java, Compiled Code)
at org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.java, Compiled Code)
at java.lang.ClassLoader.loadClass(ClassLoader.java, Compiled Code)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java, Compiled Code)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java, Compiled Code)
at SampleServlet.doGet(SampleServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)
And here's my code:
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SampleServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.print("<html><head><title>User Profile</title></head><body>");
out.print("<code><pre>");
out.println("tReg Id\tLast Name\n");
// connecting to database
Connection con = null;
Statement stmt = null;
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MYDB";
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection(url,"uname","pass");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// displaying records
ResultSet uprs = stmt.executeQuery("SELECT REG_ID, REG_LNAME FROM Registry");
while(uprs.next()) {
int regid = uprs.getInt("REG_ID");
String lname = uprs.getString("REG_LNAME");
out.print(regid + " " + lname);
}
} catch (SQLException e) {
throw new ServletException(e);
} catch (ClassNotFoundException e) {
throw new ServletException(e);
} finally {
try {
if(stmt != null)
stmt.close();
if(con != null)
con.close();
} catch (SQLException e) {}
}
out.print("</body></html>");
out.close();
}
}
Thank you.