当加载的JNI库破坏内存时,有没有办法防止Tomcat崩溃? 我们有一个运行在Tomcat 7上的Web应用程序,它加载一个JNI库模块,该模块是用C++编写的,由第三方开发。基本上,这个库为我们的web应用程序提供了生物识别技术。我们不能为此使用全java解决方案,除了使用JNI库模块之外,别无选择

当加载的JNI库破坏内存时,有没有办法防止Tomcat崩溃? 我们有一个运行在Tomcat 7上的Web应用程序,它加载一个JNI库模块,该模块是用C++编写的,由第三方开发。基本上,这个库为我们的web应用程序提供了生物识别技术。我们不能为此使用全java解决方案,除了使用JNI库模块之外,别无选择,java,tomcat,crash,java-native-interface,Java,Tomcat,Crash,Java Native Interface,问题是,有时JNI库模块会崩溃,因为它会出现分段错误并损坏内存。当这种情况发生时,它会使Tomcat在没有任何警告的情况下完全崩溃 当加载的JNI库模块崩溃时,有没有办法防止tomcat完全崩溃?理想情况下,当JNI库模块崩溃时,我们希望得到通知并有机会重新加载web应用程序/模块。可能吗 感谢您的帮助。您可以启动另一个加载JNI库的JVM。当JVM死机时,您可以从Tomcat重新启动它。您可能想用以下内容来完成回答:您还必须在JVM之间建立某种通信。无论如何,我很可能喜欢你的想法,但是std

问题是,有时JNI库模块会崩溃,因为它会出现分段错误并损坏内存。当这种情况发生时,它会使Tomcat在没有任何警告的情况下完全崩溃

当加载的JNI库模块崩溃时,有没有办法防止tomcat完全崩溃?理想情况下,当JNI库模块崩溃时,我们希望得到通知并有机会重新加载web应用程序/模块。可能吗


感谢您的帮助。

您可以启动另一个加载JNI库的JVM。当JVM死机时,您可以从Tomcat重新启动它。

您可能想用以下内容来完成回答:您还必须在JVM之间建立某种通信。无论如何,我很可能喜欢你的想法,但是std in/out可能就足够了,这是通过进程提供给你的。当Tomcat崩溃时,监控应用程序会自动重新启动它。这并不理想,但不需要在原始web应用程序中更改代码。我意识到,JVM间的交流更为优雅,但也更为复杂。“约翰,另一种解决方案是让C++库固定,但我想你已经想到了。也许任何支持该库的人都可以提出一个替代方案来修复它@彼得,是的,我同意你的看法,他们应该把它修好我告诉他们了,但我们很难重现错误,他们也不知道为什么会发生。