带有JDK 11的TOMCAT 7.0.92:-错误localhost-startStop-1 org.apache.catalina.startup.ContextConfig-无法处理Jar工具.jar中的注释

时间:2019-01-09 10:18:27

标签: java tomcat tomcat7 java-11

我们有一个在Tomcat服务器容器上运行的Web应用程序。已编译Web应用程序,并使用JDK 11作为运行时JRE来执行。

  

Tomcat版本:-7.0.92 JDK版本:-11

     

问题描述:-   1.我们在tomcat日志中看到与Tomcat服务器启动时的jar扫描有关的错误。   2.通过我们的Web应用程序启动Tomcat服务器后,它将在Tools.jar中搜索以进行注释。   3.众所周知,JDK 11已停止运送/捆绑包含tools.jar的JRE,Tomcat服务器报告了以下错误:   以下:-

ERROR localhost-startStop-1 org.apache.catalina.startup.ContextConfig - Unable to process Jar [jar:file:/ C:/JDK11/lib/tools.jar!/] for annotations
 java.nio.file.NoSuchFileException: C:\JDK11\lib\tools.jar
    at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
    at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
    at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
    at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:53)
    at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:38)
    at java.base/sun.nio.fs.WindowsFileSystemProvider.readAttributes(WindowsFileSystemProvider.java:194)
    at java.base/java.nio.file.Files.readAttributes(Files.java:1763)
    at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1222)
    at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:824)
    at java.base/java.util.zip.ZipFile$CleanableResource$FinalizableResource.<init>(ZipFile.java:850)
    at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:839)
    at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:246)
    at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:176)
    at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
    at java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103)
    at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72)
    at java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:109)
    at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:125)
    at java.base/sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:92)
    at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:48)
    at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1957)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1932)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1917)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1322)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5566)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1707)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1697)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
  

已应用解决方案/解决方法:-在Google上发布广泛的搜索   和其他社区,我们发现建议将   应用在catalina.properties文件中,这将有助于避免   扫描所有罐子。                                                                    org.apache.catalina.startup.ContextConfig.jarsToSkip = *。jar 我们已经拥有此属性,即使这样也无法解决   这个问题。

因此,请您提供一些有关此问题的见解/工作解决方案。如果需要更多信息,请还原。

感谢您的合作!

1 个答案:

答案 0 :(得分:3)

将您的JDK 降级到JDK 8(在JDK 9中删除了tools.jar),或者尝试升级您的tomcat版本到版本8或9。

当有其他稳定版本发布时(tomcat 7在 2011年宣布稳定!),我看不到使用旧版tomcat的原因。避免混合使用新旧技术,因为它们会彼此分开,就像您的情况一样。

tomcat的旧版本与Java的新版本不兼容。

长话短说,尝试使用tomcat 8或9。