Tomcat 无法在Java9项目中处理文件module-info.class导致ClassFormatException

Tomcat 无法在Java9项目中处理文件module-info.class导致ClassFormatException,tomcat,tomcat8,java-9,vaadin8,classformatexception,Tomcat,Tomcat8,Java 9,Vaadin8,Classformatexception,通过尝试,我能够使用一个Java应用程序构建一个vaadingavanine.war,并使用Jetty服务器托管该应用程序 我最终尝试将生成的war部署到tomcat服务器。但是,在tomcat服务器启动期间,我遇到以下异常: 21-Aug-2017 22:53:38.830 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processAnnotationsFile Unable to proce

通过尝试,我能够使用一个Java应用程序构建一个
vaadingavanine.war
,并使用Jetty服务器托管该应用程序

我最终尝试将生成的war部署到tomcat服务器。但是,在tomcat服务器启动期间,我遇到以下异常:

21-Aug-2017 22:53:38.830 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processAnnotationsFile Unable to process file [/Library/Tomcat/apache-tomcat-8.0.22/webapps/vaadinjavanine/WEB-INF/classes/module-info.class] for annotations
 org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
    at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)
    at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:55)
    at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:177)
    at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:85)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2011)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:1994)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:1988)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1939)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1897)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
    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:5066)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1768)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

21-Aug-2017 22:53:38.980 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/vaadinjavanine]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1768)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnsupportedClassVersionError: nullpointer/MyUI$MyUIServlet has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class nullpointer.MyUI$MyUIServlet)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2476)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:854)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
    at org.atmosphere.util.IOUtils.isAtmosphere(IOUtils.java:381)
    at org.atmosphere.cpr.ContainerInitializer.onStartup(ContainerInitializer.java:58)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5156)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 10 more

21-Aug-2017 22:53:38.981 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive /Library/Tomcat/apache-tomcat-8.0.22/webapps/vaadinjavanine.war
 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/vaadinjavanine]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1768)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
21-Aug-2017 22:53:38.830严重[localhost-startStop-1]org.apache.catalina.startup.ContextConfig.processannotations文件无法处理文件[/Library/Tomcat/apache-Tomcat-8.0.22/webapps/vadinjavanine/WEB-INF/classes/module info.class]进行注释
org.apache.tomcat.util.bcel.classfile.ClassFormatException:常量池中的字节标记无效:19
位于org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)
位于org.apache.tomcat.util.bcel.classfile.ConstantPool.(ConstantPool.java:55)
位于org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:177)
位于org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:85)
位于org.apache.catalina.startup.ContextConfig.processAnnotationStream(ContextConfig.java:2011)
位于org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:1994)
位于org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:1988)
位于org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1939)
位于org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1897)
位于org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
位于org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
位于org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
位于org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5066)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
位于org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
位于org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1768)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
2017年8月21日22:53:38.980严重[localhost-startStop-1]org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild:开始:
org.apache.catalina.LifecycleeException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/vaadinjavanine]]
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
位于org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
位于org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1768)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
原因:java.lang.UnsupportedClassVersionError:nullpointer/MyUI$MyUIServlet已由较新版本的java运行时(类文件版本53.0)编译,此版本的java运行时仅识别高达52.0的类文件版本(无法加载类nullpointer.MyUI$MyUIServlet)
位于org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2476)
位于org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:854)
位于org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
位于org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
位于org.atmosphere.util.IOUtils.isAtmosphere(IOUtils.java:381)
在org.atmosphere.cpr.ContainerInitializer.onStartup上(ContainerInitializer.java:58)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5156)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10多
2017年8月21日22:53:38.981严重[localhost-startStop-1]org.apache.catalina.startup.HostConfig.deployWAR部署web应用程序归档文件/Library/Tomcat/apache-Tomcat-8.0.22/webapps/vaadinjavanine.war时出错
java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/vaadinjavanine]]
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
位于org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
位于org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1768)
在java.util.concurrent.Executors$RunnableAdapter.call(Executo