当我尝试使用 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”

Java 服务器(Tomcat 9.0.48)忽略 $ 这个表达式 [重复]

Tomcat 7 中的 Eclipse 4.2(Juno)“无法使用所选类型创建服务器”