PostgreSQL-Verbindung im Java-Servlet zum Abrufen von Informationen aus der Datenbank. Fehler bekommen
Ich habe Schwierigkeiten, diese Arbeit zu bekommen. Ich kann mich ohne Probleme mit der Datenbank verbinden, aber ich kann mir die HTML-Seite nicht anzeigen lassen. Es läuft nicht.
<code>import java.io.*; import java.sql.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class ShowBedrock extends HttpServlet { public String getServletInfo() { return "Servlet connects to PostgreSQL database and displays result of a SELECT"; } private Connection dbcon; // Connection for scope of ShowBedrock // "init" sets up a database connection public void init(ServletConfig config) throws ServletException { String loginUser = "postgres"; String loginPasswd = "supersecret"; String loginUrl = "jdbc:postgresql://localhost/bedrock"; // Load the PostgreSQL driver try { Class.forName("org.postgresql.Driver"); dbcon = DriverManager.getConnection(loginUrl, loginUser, loginPasswd); } catch (ClassNotFoundException ex) { System.err.println("ClassNotFoundException: " + ex.getMessage()); throw new ServletException("Class not found Error"); } catch (SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } } // Use http GET public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); // Response mime type // Output stream to STDOUT PrintWriter out = response.getWriter(); out.println("<HTML><Head><Title>Bedrock</Title></Head>"); out.println("<Body><H1>Bedrock</H1>"); try { // Declare our statement Statement statement = dbcon.createStatement(); String query = "SELECT name, dept, "; query += " jobtitle "; query += "FROM employee "; // Perform the query ResultSet rs = statement.executeQuery(query); out.println("<table border>"); // Iterate through each row of rs while (rs.next()) { String m_name = rs.getString("name"); String m_dept = rs.getString("dept"); String m_jobtitle = rs.getString("jobtitle"); out.println("<tr>" + "<td>" + m_name + "</td>" + "<td>" + m_dept + "</td>" + "<td>" + m_jobtitle + "</td>" + "</tr>"); } out.println("</table></body></html>"); statement.close(); } catch(Exception ex) { out.println("<HTML>" + "<Head><Title>" + "Bedrock: Error" + "</Title></Head>\n<Body>" + "<P>SQL error in doGet: " + ex.getMessage() + "</P></Body></HTML>"); return; } out.close(); } } </code>
Ich erhalte die folgende Fehlermeldung, die jeder Körper weiß, warum ?:
<code>javax.servlet.ServletException: Class not found Error ShowBedrock.init(ShowBedrock.java:42) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) java.lang.Thread.run(Unknown Source) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs. </code>