草庐IT

java - Tomcat 6.0.28 在浸泡测试期间由于线程阻塞而无响应

我们对在Tomcat6.0.28和OpenJDK运行时环境(IcedTea61.11.11)上运行的新版JavaEEWeb应用程序进行了多次浸泡测试。问题出现在web层。一段时间后-第一次50分钟,第二次1小时,第三次2.5小时-我们集群Web层中的一个随机Tomcat停止响应。查看线程转储,我们看到大量线程突然阻塞。当问题发生时,线程数从93增加到437。437个线程中的341个在WebappClassLoader上被阻塞,如下所示:"TP-Processor400"daemonprio=10tid=0x00007f1ee432e800nid=0x44d9waitingformoni

java - 在不发布的情况下提供模块时的 Tomcat 类加载顺序

我正在使用tomcat和eclipse。根据tomcat的文档:从Web应用程序的角度来看,类或资源加载按以下顺序查看以下存储库:JVM系统类加载器类的引导类(描述以上)/WEB-INF/web应用程序的类/WEB-INF/lib/*.jar你的网络应用程序通用类加载器类(如上所述)所以当加载类时,tomcat会先查找WEB-INF/classes,然后再查找WEB-INF/lib。并且我们可以覆盖WEB-INF/lib中jar文件中的一些类,tomcat会拾取被覆盖的那个。但是现在如果我通过选中“Servemoduleswithoutpublishing”来更改tomcat服务器选项

java - Hibernate 4.3 + Tomcat 7 无法查找 JNDI 名称

我在从4.2.7升级到Hibrernate4.3.x时遇到了问题。我得到了这个异常(exception):Causedby:javax.naming.NameNotFoundException:Name[java:comp/env/jdbc/data]isnotboundinthisContext.Unabletofind[java:comp].atorg.apache.naming.NamingContext.lookup(NamingContext.java:820)atorg.apache.naming.NamingContext.lookup(NamingContext.jav

java - Eclipse 支持 maven 的 Web 应用程序引用工作区项目,但在运行 Tomcat 服务器时未部署这些项目

我有一个Web应用程序(Eclipse的动态Web应用程序),它使用Maven(m2e-wtp)进行构建和依赖项管理。此Web应用程序的POM引用了我工作区中的其他一些项目,它们恰好也是使用maven构建的eclipse插件(使用Tycho构建),以及来自Maven存储库的其他第三方库。当我从CLI运行maven时一切正常。正如预期的那样,所有依赖项都包含在WEB-INF/lib目录中。问题是当我尝试使用Eclipse运行项目时。我在Eclipse中配置的Tomcat服务器中运行该应用程序,但我的工作区中引用的项目未添加到已部署的war中。我尝试将它们添加到部署程序集(在项目首选项下)

java - 当我的 REST API 返回 500 HTTP 状态时如何禁用 Tomcat 的 html 错误页面

我正在使用@ControllerAdvice、@ErrorHandler和@ResponseStatus注释来返回一些错误信息。我确信处理程序方法已执行(我已经在调试器下检查过它。)但是我的ErrorInfo对象被TomcatHTML错误页面覆盖了。@ExceptionHandler(value=ServiceExecutionException.class)@ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR,reason="InternalServerError")ErrorInfohandleServiceError(Htt

java - 在 Linux 上从 Jersey 返回 Json 抛出异常

我开发了一个JerseyAPI,它返回XML或JSON(取决于请求header)。当部署在我的Windows2012服务器(Tomcat)上时,它没有问题。当我部署(在Ubuntu上编译后)到AWS(Glassfish)中的Ubuntu机器时,请求JSON时出现以下错误:Theserverencounteredaninternalerrorthatpreventeditfromfulfillingthisrequest.exceptionjavax.servlet.ServletException:org.glassfish.jersey.server.ContainerExcepti

java - NoClassDefFoundError : JavacProcessingEnvironment at runtime after tomcat 8 upgrade

将项目升级到springboot1.5.9(spring4.3和tomcat8.5.24)后,使用queryDSL的服务在运行时失败,因为它无法从jdk库(tools.jar)中找到类./Q_742623943_01321512155_128635432.java:1:warning:Can'tinitializejavacprocessordueto(mostlikely)aclassloaderproblem:java.lang.NoClassDefFoundError:com/sun/tools/javac/processing/JavacProcessingEnvironmen

java - 如何使用 Tomcat 6 限制请求执行时间

我正在使用Spring和Tomcat6开发Web应用程序。有时,由于某种原因,请求需要很长时间才能完成,这会降低服务器的性能。是否可以在Tomcat6或Spring中限制请求执行时间?欢迎使用其他解决此问题的方法。谢谢。 最佳答案 使用HttpConnector配置connectionTimeout修改你的server.xmlxxxx是毫秒数 关于java-如何使用Tomcat6限制请求执行时间,我们在StackOverflow上找到一个类似的问题: http

java - 匿名用户的 Tomcat/spring session 管理

我有下一个用例:我们有网上商店,用户可以在其中选择一些商品然后购买。他可以在登录应用程序之前将商品添加到购物车。所有这些项目都必须存储在他的session中。当用户点击“支付”按钮时,我们将询问他的凭据/卡/等。我的问题:当我在将商品添加到购物车之前登录时,一切正常。但是当我尝试以匿名用户身份将商品添加到购物车时,商品没有存储。以匿名用户身份刷新每个页面后,我总是收到不同的JSESSIONID。我决定创建简单的应用程序来说明我的问题。我认为没有我的消息来源无法修复它。这是我的申请:https://github.com/AlexTestAccount/simple_test很简单。它只包

java - 每次进行更改时都重建整个 Java 应用程序

我不熟悉构建Java网络应用程序和WAR文件。我正在使用一个构建在Java和JSP页面上的相当大的Web应用程序。我们有一个ANT文件,每次进行单个更改时都会重新构建整个应用程序。我想知道是否可以只重新构建应用程序中被修改的部分而不是整个项目。测试是一个10分钟的过程,因为我将进行更改、关闭Tomcat、运行ANT脚本、启动Tomcat、在浏览器中重新加载应用程序,现在重新构建后第一次加载需要7分钟(我也很想知道它在这里做什么?)...基本上完全是为了测试。如果有人能提出更好的测试策略,我会非常棒!也可能无论如何我们只让ANT脚本重新构建修改后的类。 最佳答