2011-12-27 69 views
1

我在运行tomcat 7的NiO连接器上运行我的java web应用程序的负载测试,同时运行1000个用户的模拟,我得到意外的结果 - 应用程序变为完全无法使用状态,对于应用程序的不同类,例如MVC控制器和其他类,它会给用户提供错误状态500和NoClassDefFoundError。重载加载的web应用程序中的NoClassDefFoundError

看起来像tomcat“undeploys”它出于某种原因。

你有任何想法如何解决它,什么可能是问题的根源?

回答

1

你可能会得到这个错误是类未能加载更早。真正的错误可能会更丰富。

0

可能是它不能承担负载......你是否尝试减少并发用户?尝试一个不同的连接器ajp vs http?与尼奥/生物?测试涉及io操作吗?

3

(这是彼得Lawrey的答案的详细阐述)

之一的NoClassDefFoundError异常的常见原因是试图加载先前已失败的类加载类,或者取决于在具有先前的一类类加载失败。

如果这是正在发生的事情,以后的异常的堆栈跟踪往往是无意义的。通常会在较早的日志事件中找到问题的真正原因。


我怀疑Tomcat是否会自动取消部署。如果是这样,我会期待不同的症状。 (即使Tomcat没有使用某些东西,JVM也只会卸载一个类,如果这个类不再可及,并且任何试图加载其他一些依赖于未加载类的类将尝试从类路径中加载一个新副本。)

至于问题的根源,很有可能您的应用程序的静态初始化存在问题。你配置了webapp来做一些servlet的延迟加载吗?

相关问题