我正在閱讀另一個驚人的頭先書。這一個是「頭一個Servlets & JSP - 通過Sun認證的Web組件開發者考試」。我正在關注創建一個小型「hello world」類型的程序的第一個教程。這是在第30至31Servlet Hello World錯誤 - 根本原因:java.lang.ClassNotFoundException:
我編譯Java源代碼的方式如下: C:\Users\username\Desktop\Servlets_HF_Example\project1>javac -classpath C:\tomcat\ apache-tomcat-9.0.0.M26-windows-x86\apache-tomcat-9.0.0.M26\lib\servlet-api.jar -d classes src/Ch1Servlet.java
未發現類,500錯誤的原因,有以下的源代碼:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Ch1Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
java.util.Date today = new java.util.Date();
out.println("<html> " +
"<body> " + " <h1 align=center>Head First Chapter 1 Servlet</h1>"
+ "<br>" + today + "</body> " + "</html>");
}
}
web.xml文件具有下面的代碼:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>Chapter1 Servlet</servlet-name>
<servlet-class>Ch1Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Chapter1 Servlet</servlet-name>
<url-pattern>/Serv1</url-pattern>
</servlet-mapping>
</web-app>
我對代碼以下文件夾結構:
project1
|
|
+classes
|
Ch1Servlet.class
+etc
|
web.xml
+src
|
Ch1Servlet.java
被放入Tomcat的webapps目錄下的項目結構如下:
ch1
|
|
+classes
|
Ch1Servlet.class
+WEB-INF
|
web.xml
我有我的TOMCAT_HOME目錄設置與在此Windows 7操作系統(OS)上設置JAVA_HOME。當我部署應用程序並啓動Tomcat時1)我看到一個500錯誤,說沒有找到該類。這是找不到的Ch1Servlet.class。然後,如果我刷新頁面,我會看到2)404錯誤。這些錯誤如下所示。
我有什麼錯?
我其實有這個文件夾結構。也許我的圖不清楚。我看到你使用了文件夾的加號。 – user3870315
@ user3870315如果你在'WEB-INF'下放置'classes'文件夾,那麼你可能會遇到不同的問題。您應該提供更多詳細信息,例如web.xml文件的內容以及可能的一些源代碼。 –
嗨路易斯,當然給我一個小時左右。我在這裏忙着工作。 – user3870315