我使用Netbeans和Glassfish服務器開發了一個WebApplication。我想在Tomcat服務器上部署它。但我無法在Tomcat上運行servlet。我做了以下Tomcat上的Servlet配置
- 創建的文件夾「FTI」 Tomcat的根目錄中
- 放置的index.jsp FTI目錄內,我能夠通過我的瀏覽器
- 我創建內部WEB-INF文件夾訪問「fti」文件夾並將web.xml文件放入其中。
- 我在「WEB-INF」文件夾內創建了classes文件夾,並將編譯後的java文件test.class放入其中。
- 我試着通過瀏覽器訪問/ fti/test來調用servlet,並且因爲「請求的資源(/ fti/test)不可用而出現錯誤。」
我能夠運行使用使用Netbeans相同的web.xml文件和GlassFish服務器相同的servlet
我test.java
文件:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class test extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet test</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet test </h1>");
out.println("</body>");
out.println("</html>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
我的web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
在步驟4訪問它,您是否將手動.class文件放入類文件夾? – Rembo
你確定你的代碼編譯成功,沒有這個錯誤:'嘗試'沒有'catch','最後'或資源聲明 – Rembo
爲什麼地球上不使用IDE?它會自動執行許多這些步驟,並確保一切都在正確的位置。 – EJP