使用此标记来解决有关Apache Tomcat(或简称Tomcat,以前也称为Jakarta Tomcat)的问题,它是由Apache Software Foundation(ASF)开发的开源Servlet容器。大多数问题还应包括指定操作系统的标记。
我尝试使用以下配置在 Apache Tomcat 10.1.16 上使用虚拟线程: 我尝试使用以下配置在 Apache Tomcat 10.1.16 上使用虚拟线程: <Executor name="tomcatThreadPoolVirtual" class="org.apache.catalina.core.StandardVirtualThreadExecutor"/> <Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" useVirtualThreads="true" /> 但是当我发出请求时,我不在虚拟线程上:Thread[#76,Thread-14,5,main]。我也分析了我的应用程序,但没有使用虚拟线程。 如果我使用 Http11NioProtocol 而不是 Http11Nio2Protocol,所有请求都在虚拟线程上:VirtualThread[#65,http-nio-8080-virt-0]/runnable@ForkJoinPool-1-worker-1 <Executor name="tomcatThreadPoolVirtual" class="org.apache.catalina.core.StandardVirtualThreadExecutor"/> <!-- A "Connector" represents an endpoint by which requests are received org.apache.coyote.http11.Http11Nio2Protocol and responses are returned. Documentation at : HTTP Connector: /docs/config/http.html AJP Connector: /docs/config/ajp.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" useVirtualThreads="true" /> Http11Nio2Protocol 不支持虚拟线程?有人遇到过这个问题吗? 是的,您的观察是正确的。从 Tomcat 10.1.16 开始,Nio2Endpoint 不会在虚拟线程上执行代码,而 NioEndpoint 则会执行。虽然 AbstractEndpoint(两者的共同超类)支持虚拟线程的使用,但 Nio2Endpoint.setSocketOptions 方法调用 AbstractEndpoint.processSocket,参数 dispatch 硬编码为 false,并带有注释:继续在同一线程上进行处理,因为接受器是异步的。我认为这与 NIO2 Tomcat Connector 的潜在异步性有关。有趣的是,它确实在虚拟线程上创建了它的 Acceptor,但我们不能从中受益匪浅。 我相信这是这个版本的 Tomcat 的一个简单错误,看看它是否在后续版本中得到修复或向他们报告是有意义的。 顺便说一句,可以覆盖 Tomcat 连接器实现,并且修复似乎非常简单,并且覆盖 - 微不足道。如果您被锁定到此版本的 Tomcat,并且您的工作线程的虚拟性质足够重要,请告诉我,我们可以尝试这样做。
如何在Tomcat 10.1中使用JSTL错误:jakarta.tags.core无法识别[重复]
我知道Tomcat v10.1,指的是以下规格: 小服务程序6.0 JSP 3.1 EL 5.0 所以我的 Gradle 依赖项是: 依赖项{ 仅编译“jakarta.servlet:jakarta.servlet-api:6.0....
我们刚刚将 Tomcat 从 9.0 升级到 10.1,将 Java 从 8 升级到 11。一切都运行良好,只是现在我们的临时文件堆积在 Apache Software Foundation\Tomcat 10.1\work\Catalina\loca...
是否可以在Tomcat中动态重新加载log4j.xml / log4j.properties文件?
问题是,每当您更改 log4j.properties/log4j.xml 时,您都需要重新启动 tomcat [或说任何其他服务器]。有没有重新加载 log4j 配置的解决方法?
Tomcat 10 在尝试从 ForkJoinPool 内的类路径加载资源时抛出 FileNotFoundException 错误
我想分享一个从 Java 8、Tomcat 8 和 Spring Boot 2 升级到 Java 17、Tomcat 10 和 Spring Boot 3 后开始发生的问题。 问题是现在我们无法再加载一些f...
升级到 Spring Boot 3 破坏了我的 SQL 查询
我正在将现有服务升级到 Spring Boot 3。这包括升级到 spring-boot-starter-data-jpa 3.15,这意味着升级到 Hibernate 6 和 Tomcat 10.1。我收到错误无效
如何设置`logging.properties`的客户处理程序的属性
在尝试为 Tomcat 添加自定义处理程序(使用 java.util.logging)时,我找不到添加自定义属性的方法。 例如。如何设置处理程序的 abc 属性的值? # 记录。
Eclipse 动态 Web 项目(目标运行时)Tomcat 11 不可用
Elicpse 目标运行时 我下载了 Java 21,因此下载了 tomcat 11,并且我想创建一个动态 Web 项目。现在想选择服务器。但是Oracle下没有Tomcat 11什么的...
我正在寻找一种方法来部署 2 个不同的 webapp 项目(不在同一个 IntelliJ 窗口中打开)。我创建了 2 个不同的调试配置,它们都针对运行的同一个 tomcat
当我在 tomcat 上测试 Web 服务时,收到“找不到合适的驱动程序”错误。我在 lib 文件夹中有 JDBC .jar,正如各种教程所说的那样。这是我的代码: 公开课
我在 stackoverflow 上阅读了很多主题来解决我的问题,但没有一个有用。 当我尝试使用很多不同的方式登录管理器应用程序([http://localhost:8080/manager/html][1])时
我有以下问题: 我有 context.xml 文件,服务器无法通过 @Resource() 注入添加或使用类来读取该文件(请检查下面)。我正在使用 eclipse、Tomcat 9.0...
tomcat 10.1.16升级和java17升级以及spring 6.1.1后http响应缓慢
我已将我的java spring项目java版本从12升级到java 17,完全迁移到雅加达, 我还使用最新版本将 spring 版本升级到 6.1.1,显然将 tomcat 升级到 tomcat 10...
我想在我的网络应用程序中运行一些代码,以使应用程序停止。例如,如果数据库服务器不可用。 我想实现类似 App.exit() 的东西...
如何在 ServletContextListener 发生异常时中止 Tomcat 启动?
我有一个实现 ServletContextListener 的类,它在启动时加载一些资源。 这些资源对于应用程序至关重要,我希望整个启动失败......
我在启动tomcat时遇到此错误 从 catalina.out 登录 无法加载指定的配置位置文件:/ ....启动失败: 有没有办法让我的java代码引发这个错误并停止我的
如何在docker容器中优雅地关闭tomcat中的servlts?
到目前为止我发现了什么: “docker stop”向容器中 ID 为 1 的进程发送 SIGTERM。 容器中的进程ID 1是运行tomcat的java进程。*) 是的,tomcat自己关闭了...
在此输入图像描述 弹出上述错误 在此输入图像描述 以前我已经有 tomcat 10 并且工作正常。对于新项目,我想在 tomcat 9 中运行。但是…
Spring 的 GetMapping() 出现 Tomcat 错误“请求的资源...不可用”
我正在使用 Tomcat 10.1、Maven 和 Eclipse IDE 制作 Spring 应用程序。我运行我的应用程序并看到index.jsp,但是如果我输入路径“/refer”(来自GetMapping(“/refer”)),我想得到hello_wo...
HTTP 状态 500 – 有关 ServletUtilities 的内部服务器错误
我正在尝试在centos上使用Tomcat 10和jdk11制作Web服务。 但我收到 HTTP Status 500 – Internal Server Error,并显示 An error returned at line: [703] in the jsp file: [/index.jsp] 是