2014-11-01 54 views
1

我想我已經成功連接到數據庫,並且當我運行Fetch.jsp時,我確實使用提交按鈕來獲取頁面。但是當我點擊提交按鈕時,它顯示一個Tomcat錯誤類型狀態報告消息/示例描述請求的資源不可用。 工具:Eclipse的開普勒 MySQL工作臺6.1.7 的Apache Tomcat 7.0.54「資源不可用」將數據庫顯示到JSP時出錯

Fetch.jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Database_Test</title> 
</head> 
<body> 
<form action="Sample" method="post"> 
Fetch Data: <input type="submit"></input> 
</form> 
</body> 
</html> 

Sample.java

package testusecase; 

import java.io.IOException; 
import java.math.BigDecimal; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.util.Date; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class Sample extends HttpServlet { 
/** 
* 
*/ 
private static final long serialVersionUID = 8462790020399479519L; 

@Override 
protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
     throws ServletException, IOException { 


    @SuppressWarnings("unused") 
    Sample instance = new Sample(); 
    final String URL = "jdbc:mysql://localhost:3306/samschema"; 
    final String USER = "root"; 
    final String PASSWORD = "password"; 
    final String DRIVER_CLASS = "com.mysql.jdbc.Driver"; 

    try { 
     Class.forName(DRIVER_CLASS); 
     Connection connection = null; 
     connection = DriverManager.getConnection(URL, USER, PASSWORD); 
     String query = "SELECT * FROM samschema.sample1"; 
     Statement st = connection.createStatement(); 
     ResultSet rs = st.executeQuery(query); 
     while (rs.next()) { 
      int serial_no = rs.getInt("serial_no"); 
      String first_name = rs.getString("first_name"); 
      String middle_name = rs.getString("middle_name"); 
      String last_name = rs.getString("last_name"); 
      String date_of_birth = rs.getString("date_of_birth"); 
      String contact_no = rs.getString("contact_no"); 
      String email_id = rs.getString("email_id"); 
      String residential_address = rs.getString("residential_address"); 
      String city = rs.getString("city"); 
      BigDecimal percentage_x = rs.getBigDecimal("percentage_x"); 
      Date yop_x = rs.getDate("yop_x"); 
      String board_x = rs.getString("board_x"); 
      String percentage_xii = rs.getString("percentage_xii"); 
      String yop_xii = rs.getString("yop_xii"); 
      String board_xii = rs.getString("board_xii"); 
      String btech_stream = rs.getString("btech_stream"); 
      String mtech_stream = rs.getString("mtech_stream"); 
      String other_stream = rs.getString("other_stream"); 
      String percentage_graduation = rs.getString("percentage_graduation"); 
      String mca_percentage = rs.getString("mca_percentage"); 
      String year_of_graduation = rs.getString("year_of_graduation"); 
      String d_to_d = rs.getString("d_to_d"); 
      String mtech_percentage = rs.getString("mtech_percentage"); 
      String yop_diploma = rs.getString("yop_diploma"); 
      String percentage_d_to_d = rs.getString("percentage_d_to_d"); 


      // print the results 
      System.out.format("%d, %s, %s, %s, %s, %s, %s, %s, %s, %d, %d, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s\n", serial_no, first_name, 
        middle_name,last_name, date_of_birth,contact_no,email_id,residential_address,city, percentage_x, yop_x, board_x, percentage_xii, yop_xii, board_xii, btech_stream, mtech_stream, other_stream, percentage_graduation, mca_percentage, year_of_graduation, d_to_d, mtech_percentage, yop_diploma, percentage_d_to_d); 
     } 
     st.close(); 

    } 

    catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

} 

的web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
<display-name>TestUseCase</display-name> 
<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
<welcome-file>index.htm</welcome-file> 
<welcome-file>index.jsp</welcome-file> 
<welcome-file>default.html</welcome-file> 
<welcome-file>default.htm</welcome-file> 
<welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 
<security-constraint> 
<web-resource-collection> 
    <web-resource-name>TestUseCase</web-resource-name> 
    <url-pattern>/*</url-pattern> 
    <http-method>GET</http-method> 
    <http-method>POST</http-method> 
</web-resource-collection> 
</security-constraint> 
<servlet> 
<description></description> 
<display-name>Login</display-name> 
<servlet-name>Login</servlet-name> 
<jsp-file>/Login.jsp</jsp-file> 
</servlet> 
<servlet-mapping> 
<servlet-name>Login</servlet-name> 
<url-pattern>/Login</url-pattern> 
</servlet-mapping> 

<servlet> 
<description></description> 
<display-name>Sample</display-name> 
<servlet-name>Sample</servlet-name> 
<servlet-class>Sample</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Sample</servlet-name> 
<url-pattern>/Sample</url-pattern> 
</servlet-mapping> 


</web-app> 

控制檯中的Java堆棧跟蹤

Java Model Exception: Java Model Status [Unknown javadoc format for getAsciiStream(java.lang.String) [in ResultSet [in ResultSet.class [in java.sql [in U:\Miller\Eclipse\JDK\lib\rt.jar]]]]] 
at org.eclipse.jdt.internal.core.JavadocContents.getMethodDoc(JavadocContents.java:158) 
at org.eclipse.jdt.internal.core.BinaryMethod.getAttachedJavadoc(BinaryMethod.java:671) 
at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:499) 
at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.extractJavadoc(ProposalInfo.java:93) 
at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.computeInfo(ProposalInfo.java:77) 
at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.getInfo(ProposalInfo.java:62) 
at org.eclipse.jdt.internal.ui.text.java.AbstractJavaCompletionProposal.getAdditionalProposalInfo(AbstractJavaCompletionProposal.java:573) 
at org.eclipse.jface.text.contentassist.AdditionalInfoController$3.run(AdditionalInfoController.java:106) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

瀏覽器錯誤

HTTP Status 500 - Error instantiating servlet class Sample 

type Exception report 

message Error instantiating servlet class Sample 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: Error instantiating servlet class Sample 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Unknown Source) 
root cause 

java.lang.ClassNotFoundException: Sample 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Unknown Source) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs. 

Apache Tomcat/7.0.54 
+0

而是要求我們猜測其中的錯誤發生,這將是更好的展現堆棧跟蹤... – 2014-11-01 14:37:29

+0

我希望這是您要求顯示的內容爲... – 2014-11-01 15:01:32

+0

@SergeBallesta單擊事件後的堆棧跟蹤。但我在Fetch.jsp文件和 testusecase中更改了

。示例在web.xml文件中,並且正在運行。除了現在它只顯示一個空白頁面,而不是任何表或任何條目。 – 2014-11-05 16:52:01

回答

0

在servlet標籤,該<servlet-class>元素應該是你的servlet類的全名。例如:

<servlet-class>testusecase.Sample</servlet-class> 

還要注意的是,當發生規定的問題,你看堆棧跟蹤似乎是,當你的應用程序正在啓動的,而不是。

+0

我已經嘗試過,但沒有工作。 – 2014-11-01 17:58:12

0

根據堆棧跟蹤,servlet /Placement試圖控制Fetch.jsp並且容器無法找到它。它可能是一個小寫/大寫的問題,或者它確實是Web應用程序的根源?

由於完整的錯誤很明顯。在web.xml文件,你必須給出全名你的servlet類:

<servlet-class>testusecase.Sample</servlet-class> 
+0

該項目的根上下文是TestUseCase,Fetch.jsp是其中的一個文件。 我確實得到了Fetch.jsp頁面的輸出,但是當我點擊提交按鈕時,我無法獲取我想要在這裏連接的數據庫。 有錯誤顯示的地方up.localhost:8080 /採樣類型狀態報告;消息/樣本;說明請求的資源不可用。幫助我解決這個錯誤。 – 2014-11-05 07:53:34

+0

請顯示與錯誤對應的堆棧跟蹤。 Stacktrace包含重要的信息,特別是當源代碼行可用時出現錯誤的類。如果沒有更多,它可能是表或字段名稱中的拼寫錯誤,但堆棧跟蹤應該直接涉及到確切的線。 – 2014-11-05 08:02:36

+0

父親,我新編程,不知道點擊按鈕後會顯示什麼堆棧跟蹤。我在這裏找到的所有堆棧跟蹤都是在我啓動Placement服務器時啓動的,而且我已經在這裏提交。 – 2014-11-05 10:00:00