如果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本身檢查相關文件是否已經在其背後進行了更改,否則它將繼續使用這些「陳舊」的文件指針,直到它重新啓動。 –