相关疑难解决方法(0)

Tomcat 10.x 在 javax/servlet/ServletRequestListener 上抛出 java.lang.NoClassDefFoundError

在上下文路径 [/VirtualStore] 上部署了基于 servlet 的 Web 应用程序,但上下文无法从以下日志开始。

19-Mar-2021 11:46:35.075 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [C:\Users\Ing.Girbson BIJOU\Documents\NetBeansProjects\apache-tomcat-10.0.4-windows-x64\apache-tomcat-10.0.4\conf\Catalina\localhost\VS.xml] has finished in [448] ms
19-Mar-2021 11:46:35.079 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\Ing.Girbson BIJOU\Documents\NetBeansProjects\apache-tomcat-10.0.4-windows-x64\apache-tomcat-10.0.4\webapps\docs]
19-Mar-2021 11:46:35.291 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [143] milliseconds.
19-Mar-2021 11:46:35.306 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\Ing.Girbson BIJOU\Documents\NetBeansProjects\apache-tomcat-10.0.4-windows-x64\apache-tomcat-10.0.4\webapps\docs] has finished in [228] ms
19-Mar-2021 11:46:35.307 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\Ing.Girbson BIJOU\Documents\NetBeansProjects\apache-tomcat-10.0.4-windows-x64\apache-tomcat-10.0.4\webapps\examples] …
Run Code Online (Sandbox Code Playgroud)

tomcat servlets noclassdeffounderror

6
推荐指数
2
解决办法
3574
查看次数

为什么升级到 Tomcat 10.0.5 会导致 spring boot 启动后关闭?

我有一个 Spring Boot 项目,我尝试使用嵌入的 Tomcat 10 而不是 Tomcat 7。我将以下内容添加到我的 POM 中...

<properties>
    <tomcat.version>10.0.5</tomcat.version>
    ...
</properties>
Run Code Online (Sandbox Code Playgroud)

然后我运行之前运行的相同命令......

mvn clean package -U && java -cp target\my.jar;props -Dloader.main=com.my.Main org.springframework.boot.loader.PropertiesLauncher
Run Code Online (Sandbox Code Playgroud)

但现在它刚刚启动,然后就自行关闭了。最后的消息是...

2021-05-13 15:35:42.105  INFO 10084 --- [           main] com.my.Main                   : Started Main in 42.918 seconds (JVM running for 44.009)
2021-05-13 15:35:42.190  INFO 10084 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况以及如何升级而不产生这种副作用?

tomcat spring-boot tomcat10

6
推荐指数
1
解决办法
1万
查看次数

java: 无法访问 javax.servlet.ServletException 类文件,因为找不到 javax.servlet.ServletException

描述

当我开发我的java项目时,我使用:
Java version: 1.8
Apache Tomcat version 9.0.x

然后,我用来Tomcat 10.0.x运行我的项目(对我的项目进行了很少的修改)。我必须将javax与包相关的导入更改为jakarta包导入。

当我构建项目时,我收到以下错误;

java: cannot access javax.servlet.ServletException  
class file for javax.servlet.ServletException not found
Run Code Online (Sandbox Code Playgroud)

使固定

当我搜索修复程序时,我发现我需要在文件Java Servlet API中包含依赖项pom.xml。这样我就可以成功构建项目了。

java: cannot access javax.servlet.ServletException  
class file for javax.servlet.ServletException not found
Run Code Online (Sandbox Code Playgroud)

问题

  1. Java Servlet API为什么我在迁移到 Tomcat 10 时必须包含依赖项?
  2. 我确实包含了Java Servlet API依赖项,但这是一个正确的修复吗?

java tomcat java-8 tomcat9 tomcat10

6
推荐指数
1
解决办法
2万
查看次数

Tomcat 将 servlet 转换为 javax.servlet.Servlet 而不是 jakarta.servlet.http.HttpServlet

我一直在徒劳地尝试实现 tomcat 9 的 jakarta servlet,而不是以前的 javax.servlet 实现(因为我的理解是 jakarta 包是前进的方向)。问题是,当我将浏览器指向我的 servlet 的 url 时,我收到以下错误...

java.lang.ClassCastException: class cti.nm.web.Index cannot be cast to class javax.servlet.Servlet (cti.nm.web.Index is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @48c76607; javax.servlet.Servlet is in unnamed module of loader java.net.URLClassLoader @621be5d1)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:432)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.base/java.lang.Thread.run(Thread.java:832)
Run Code Online (Sandbox Code Playgroud)

问题已经很明显了。Tomcat 正在尝试将我的 jakarta.servlet.http.HttpServlet 转换为 javax.servlet.Servlet,这显然不起作用。我无法想象的是如何告诉它 servlet 实际实现的类。

类本身被声明为...

package cti.nm.web;
import jakarta.servlet.http.HttpServlet;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class Index extends …
Run Code Online (Sandbox Code Playgroud)

tomcat servlets classcastexception maven

5
推荐指数
1
解决办法
6529
查看次数

在 Java 构建路径上找不到“javax.servlet.http.HttpServlet”

我只是想学习一些 JSP,但我反复收到该错误。我已经尝试了互联网上的所有内容,但什么也没发生。我使用的是 Tomcat v10 和 JDK15.0.2。当我创建一个新的 JSP 文件时会发生这个错误。在此处输入图片说明

java eclipse jsp

5
推荐指数
2
解决办法
1188
查看次数

Tomcat 10 上的 Spring Boot 2.x 问题

我正在尝试在 Tomcat Docker 容器中部署 war 文件,但总是获取404 Not Found页面。我按照Intellij Tutorial创建了 Spring Boot 项目,它在我本地的机器上运行良好。

这是我的 Dockerfile:

FROM tomcat:latest
ADD WebTutorial.war /usr/local/tomcat/webapps/ROOT.war
Run Code Online (Sandbox Code Playgroud)

我使用以下命令来构建映像并运行容器:

$ docker build -t sp-tomcat .
$ docker run -it -p 8080:8080 --name sp-tomcat sp-tomcat
Run Code Online (Sandbox Code Playgroud)

容器运行后,我登录到容器并看到 war 文件已部署(我想):
在此输入图像描述

这是日志输出:

21-Dec-2021 07:41:35.819 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/10.0.14
21-Dec-2021 07:41:35.821 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Dec 2 2021 22:01:36 UTC
21-Dec-2021 07:41:35.821 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.14.0
21-Dec-2021 07:41:35.821 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS …
Run Code Online (Sandbox Code Playgroud)

java tomcat docker spring-boot

5
推荐指数
1
解决办法
3257
查看次数

tomcat-embed-core:10.1.0-M16 会使 import javax.servlet.http.HttpServletResponse 无法解析

如果我放入最新的 org.apache.tomcat.embed:tomcat-embed-core:10.1.0-M16 依赖项,则会导致 import javax.servlet.http.HttpServletResponse 无法解析。

这是我的 build.gradle,

plugins {
    id 'org.springframework.boot' version '2.7.0'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
    id 'war'
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.0-M16'
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

谢谢你!

tomcat gradle spring-boot

5
推荐指数
1
解决办法
2468
查看次数

Tomcat 10.0.4 不会加载带有 404 错误的 servlet(@WebServlet 类)

我的第一个 Web 应用程序有问题。我使用 IntelliJ 作为 IDE,使用 Tomcat 作为 Web 服务器。我尝试访问的每个 servlet 都会抛出 404 错误。即使我复制了一些 youtube 教程,这似乎也很有魅力。

表单中的按钮将我发送到:http://localhost:8080/IUBHQuiz/login

你能告诉我有什么问题吗?我快疯了。

登录.java

package com.example.IUBHQuiz;

import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.sql.*;

@WebServlet("/login")
public class login extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String email = request.getParameter("fmail");
        String pass = request.getParameter("fpw");

        if(email.equals("j") && pass.equals("j"))
        {
            RequestDispatcher rs = request.getRequestDispatcher("/main.jsp");
            rs.forward(request, response);
        }
        else
        {
            out.println("Username or Password incorrect");

            RequestDispatcher …
Run Code Online (Sandbox Code Playgroud)

java tomcat servlets intellij-idea tomcat10

4
推荐指数
2
解决办法
1625
查看次数

如何安装 Java EE SDK?

我正在介绍有关 servlet 的大学章节。这本书要求我复制一段代码并在cmd中运行它。它不会在 cmd 中运行,并且这一章模糊地解释了我如何安装 Java EE。这是代码和错误:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class NameServlet extends HttpServlet {
    
    public static void main(String[] args) {

    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<body style=’background-color: lightyellow’>");

        String name = "Wow, this servlet works great!!";
        out.println("Name: " + name);
        out.println("</body>");
        out.println("</html>");
        out.close();
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        doGet(request, response);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

java tomcat jakarta-ee tomcat10

1
推荐指数
1
解决办法
81
查看次数

DispatcherServlet 不能转换为类 jakarta.servlet.Servlet (ClassCastException)

我有一个与此处DispatcherServlet cannot be cast to Servlet 类似的问题,这是使用 Eclipse 运行新的 Spring MVC 项目时的问题。但是,所有答案都建议使用 Maven 的解决方案,而我没有使用 Maven。

我为这个问题搜索了一天,但没有解决方案。

INFO: Starting Servlet engine: [Apache Tomcat/10.0.4]
Mar 22, 2021 9:59:10 AM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took 
[447] milliseconds.

Mar 22, 2021 9:59:10 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for 
this logger for a complete list of JARs that were scanned but …
Run Code Online (Sandbox Code Playgroud)

java eclipse spring tomcat spring-mvc

1
推荐指数
1
解决办法
2019
查看次数

为什么编译 java servlet 时出现错误?

我创建了一个名为TestingServlet 的java servlet,当我尝试编译文件时出现错误。我已经为 servlet-api.jar 设置了类路径,并尝试在编译时包含类路径:

javac -cp "C:\Program Files\Apache Software Foundation\Tomcat 10.0\lib\servlet-api.jar" TestingServlet.java
Run Code Online (Sandbox Code Playgroud)

代码是:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class TestingServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, 
  HttpServletResponse response) 
  throws ServletException, IOException {
  
  PrintWriter out = response.getWriter();
  out.println("<HTML>");
  out.println("<HEAD>");
  out.println("<TITLE>Servlet Testing</TITLE>");
  out.println("</HEAD>");
  out.println("<BODY>");
  out.println("Welcome to the Servlet Testing Center");
  out.println("</BODY>");
  out.println("</HTML>");
 }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

TestingServlet.java:6: error: cannot find symbol
public class TestingServlet extends HttpServlet {
                                    ^
  symbol: class HttpServlet
TestingServlet.java:8: error: cannot find symbol
 public …
Run Code Online (Sandbox Code Playgroud)

java tomcat servlets compiler-errors

1
推荐指数
1
解决办法
424
查看次数

如何使用tomcat运行Guidewire war文件?

我有一个使用 Tomcat 服务器启动 CC war 文件的特定需求。我创建了两个 war 文件 - 一个使用“warTomcatDbcp”命令,另一个使用“warTomcatJndi”命令。但是,当我尝试启动 Tomcat 服务器时,我在这两个战争中都遇到了错误。为了确保这不是 tomcat 的问题,我部署了一个从小型 Java 项目创建的 war 文件,并且没有出现任何问题。

“gwb warTomcatDbcp”或“gwb warTomcatJndi”是在 Guidewire 中构建 war 文件的正确方法吗?此外,正确构建 war 文件是否还需要任何其他步骤或配置?

请注意 - 我正在尝试使用 OOTB 版本进行此操作,并且没有进行任何代码更改,而且我也能够从 studio jetty 服务器启动服务器。

这是当我尝试从 tomcat 启动服务器时收到的 cc 日志。

31-Oct-2023 09:02:57.488 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [com.guidewire.pl.system.websocket.WebSocketServletContextListener]
    java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2352)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:800)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1317)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
        at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:491)
        at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:473)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4349)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4860)
        at …
Run Code Online (Sandbox Code Playgroud)

tomcat guidewire

1
推荐指数
2
解决办法
138
查看次数

导入 javax.servlet 仍然无法解析

这是我的 Eclipse 范围的 JRE 定义,清楚地显示已添加 servlet-api.jar:

在此输入图像描述

这里有同样的旧导入错误,似乎永远无法解决。Java不是很棒吗?有人有可能对为什么这仍然不起作用有一个简单、事实的答案吗?

在此输入图像描述

java eclipse tomcat

0
推荐指数
1
解决办法
3564
查看次数