簡體   English   中英

Servlet Hello World 錯誤 - 根本原因:java.lang.ClassNotFoundException:

[英]Servlet Hello World Error - Root cause: java.lang.ClassNotFoundException:

我正在閱讀另一本令人驚嘆的Head First書。 這是“Head First Servlets & JSP - 通過 Sun 認證 Web 組件開發人員考試”。 我正在關注有關創建小型“hello world”類型程序的第一個教程。 這是第 30 至 31 頁。

我正在通過以下方式編譯 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

在此處輸入圖片說明 圖 0:已部署項目的文件夾結構

我在此 Windows 7 操作系統 (OS) 上設置了 TOMCAT_HOME 目錄和 JAVA_HOME。 當我部署應用程序並啟動 Tomcat 時 1) 我看到一個 500 錯誤,指出找不到該類。 這是未找到的 Ch1Servlet.class。 然后,如果我刷新頁面,我會看到 2) 404 錯誤。 這些錯誤如下所示。

在此處輸入圖片說明 圖 1:500 錯誤 - 第一次點擊

在此處輸入圖片說明 圖 2:404 - 第二次點擊

我哪里做錯了?

為了讓應用程序服務器正確加載您的類,您的 web 應用程序的結構應如下所示:

ch1/
 |
 +- WEB-INF/
     |
     +- classes/
     |   |
     |   +- Ch1Servlet.class
     |
     +- web.xml

所有的類和庫都在WEB-INF文件夾下,特別是分別在classeslib

編輯 web.xml

<servlet-name>Chapter1 Servlet</servlet-name>
<servlet-class>packagenameofCh1Servlet.Ch1Servlet</servlet-class>

<servlet-name>Chapter1 Servlet</servlet-name>
<url-pattern>/Serv1</url-pattern>

``

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM