当我尝试使用 Tomcat 服务器在 java servlet 中发送 GET 请求时,我在实例化 servlet 类时遇到错误
Posted
技术标签:
【中文标题】当我尝试使用 Tomcat 服务器在 java servlet 中发送 GET 请求时,我在实例化 servlet 类时遇到错误【英文标题】:when I am trying to send a GET request in java servlet using Tomcat server I am getting error instantiating servlet class 【发布时间】:2022-01-02 22:22:58 【问题描述】:我使用的是 10.0.10 版的 tomcat 这是我在 index.html 文件中按提交时遇到的错误 即使我添加了一个构造函数,AddServlet 仍然没有实例化 我试图在 tomcat 版本(apache-tomcat-8.5.61)中运行相同的代码仍然面临相同的错误。 索引.html 这是 sevlet 代码 AddServlet.java
package com.sintin;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.*;
import jakarta.servlet.*;
import java.util.*;
import java.io.*;
public class AddServer extends HttpServlet
private static final long serialVersionUID = 102831973239L;
public AddServer()
public void service(HttpServletRequest req , HttpServletResponse res) throws
IOException, ServletException
System.out.println("in the AddServer class");
int x = Integer.parseInt(req.getParameter("num1"));
int y = Integer.parseInt(req.getParameter("num2"));
// String stir="sintnada";
// PrintWriter out = res.getWriter();
// out.println("the result is"+ x+y);
System.out.println("ans="+x+y);
RequestDispatcher rd = req.getRequestDispatcher("class2");
rd.forward(req, res);
这是我的 webapp/web-INF 中的 xml 文件 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
version="3.1">
<servlet>
<servlet-name>add</servlet-name>
<servlet-class>com.sintin.AddServer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>add</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>class2</servlet-name>
<servlet-class>com.sintin.Class2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>class2</servlet-name>
<url-pattern>/class2</url-pattern>
</servlet-mapping>
</web-app>
【问题讨论】:
似乎 web.xml 已部署,而您编译的AddServer
类文件未部署。你如何运行/部署这个项目?
根本原因的完整堆栈跟踪是什么?错误页面提到它在服务器日志中。
@nitind 可以指导我如何打开服务器日志
@f1sh 我正在使用 Eclipse IDE 我只需右键单击我的项目 (DemoApp) 将鼠标悬停在运行上,然后在服务器上运行
【参考方案1】:
当我使用亚马逊提供的 JDK(Amazon Corretto JDK 11.0.9_12)时,我遇到了这个问题。 我通过oracle安装java(JDK-17.0.1)并重新安装了eclipse解决了这个问题。
【讨论】:
以上是关于当我尝试使用 Tomcat 服务器在 java servlet 中发送 GET 请求时,我在实例化 servlet 类时遇到错误的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试在服务器上运行 java web-app 时出现问题
Tomcat 和 Objectdb(通过 GWT/Rpc):java.lang.NoClassDefFoundError
HTTP 状态 500 – 内部服务器错误(Java、Eclipse、Servlet、Tomcat)
在 Tomcat 上实现 Jersey 时出现“javax.servlet.ServletException: java.lang.NoClassDefFoundError”