如果Tomcat开始的JAVA_HOME:是否需要在更新JDK后重新启动Tomcat?
/usr/lib/jvm/jre
这本身就是一个符号链接是这样的:
/usr/lib/jvm/java-1.7.0-1.7.0.80.x86_64/jre
,然后Java的更新,而Tomcat正在运行:
/usr/lib/jvm/java-1.7.0-1.7.0.95.x86_64/jre
与之前的符号链接现在指向文件系统上的新Java位置,Tomcat是否需要在更新后重新启动?
我相信我已经看到没有重新启动与类加载相关的问题,但我正在寻找最佳实践,说明或准则的参考资料,以反对或重新启动。我的google-fu无法找到对此的明确答案。
已添加3/30/2106: 在JVM更新为Tomcat运行到java-1.7.0-oracle-1.7.0.99.x86_64后,我们刚刚在我们的Jenkins服务器上看到了这一点。堆栈跟踪以:
Caused by: java.io.FileNotFoundException: /usr/lib/jvm/java-1.7.0-oracle-1.7.0.95.x86_64/jre/lib/ext/dnsns.jar
at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:726)
at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:591)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:673)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:666)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:665)
at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:836)
tomcat的文件句柄将指向它正在使用的任何java文件的先前版本。除非tomcat本身检查相关文件是否已经在其背后进行了更改,否则它将继续使用这些“陈旧”的文件指针,直到它重新启动。 –