一个在第三方库的bug导致在我的JBoss的实例的工作线程无限循环.你知道如何在不重新启动服务器的情况下杀死这个"卡住"的线程吗?我们希望能够从此恢复直到部署修复程序,最好不必重新启动.
我见过一些人提到使用Thread.interrupt() - 如果我要编写自己的MBean代码,为了打断它,我怎样才能获得有问题的线程的句柄?
更新:无法使用任何这些方法解决.我确实遇到了另一个关于同一问题的线程,该问题有一个链接到为什么不推荐使用Thread.stop().其他人也提出了类似的问题并得到了类似的结果.似乎更复杂的容器应该提供这种健康机制,但我猜他们的手与JVM绑在一起.
我的servlet应用程序包含许多库.jars,其中一些包含嵌入的log4j.xml或log4j.properties文件.我想确保log4j首先找到我的log4j.xml!我已经尝试在servlet中搜索各种类路径元素的优先级的一些规范(例如,WEB-INF/classes总是在WEB-INF/lib之前吗?),或者某种方式来配置或调整servlet的类加载器,以便给定的资源目录出现在类路径的早期.到目前为止,我已经画了一个空白.有关确保servlet .war文件通过类加载器加载正确的log4j.xml的任何建议吗?
如果要调用要覆盖的类com.example.FooServlet并且这个类在jar中WEB-INF/lib/foo.jar,那么如何使用com.example.FooServlet另一个jar中调用的类来覆盖它,比如说bar.jar?
或者有没有办法确保bar.jar首先加载?
制作bar.jar一个模块是不行的,因为FooServlet从许多罐子里进口大量的类WEB-INF/lib.
正如我上面所说的,我试图bar.jar在一个模块中包含,但没有找到类或没有类def错误(记不清楚)作为FooServlet扩展/实现一些额外的类/接口在WEB-INF /中的第三方jar中库.
我不允许触摸foo.jar或任何已经存在的罐子WEB-INF/lib.