2017-08-21 10 views
3

Run Vaadin 8.1 app under Java 9 prerelease in IntelliJ 2017.2.2fresh projectを使用してvaadinjavanine.warを構築し、Jetty Serverを使用してホストすることができました。Java9プロジェクト内のファイルmodule-info.classを処理できません。ClassFormatExceptionが発生します。

私は、生成された戦争を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) 

例外はJava9のmodule-info.javaから生成されmodule-info.classを処理することができませんでし述べています。 これを解決する方法はありますか?または、これは実際にTomcatがまだjava9モジュールの準備ができていないことを意味しますか?

は:Tomcatに初心者なので、私は、設定をカスタマイズしていません。さらなる情報のために他のものを共有できる場合は、私に知らせてください。

答えて

2

私はTomcatのエキスパートではありませんが、モジュール記述子が最も深刻な問題ではないようです。 nexted例外は、このブロックが含まれています

によって引き起こさ

java.lang.UnsupportedClassVersionErrornullpointer/MyUI$MyUIServlet Javaランタイムのこのバージョンでは唯一のクラスファイルのバージョンを認識し、Javaランタイム(クラスファイルのバージョン53.0)の最新バージョンでコンパイルされています52.0に

(クラスnullpointer.MyUI$MyUIServletをロードできない)これはあなたのコードは、Java 9(クラスファイルのバージョン53)でコンパイルされているのに対し、あなたは、Javaの8(クラスファイルのバージョン52)でTomcatを実行しているように見えます。

Java 9でTomcatを実行していることを確認してください。さらに、Java 9との互換性のために必要なearly access build of Tomcat 9を試してみてください。

+0

意味があります。 'jdk-9 + 181'で' apache-tomcat-9.0.0.M26'を実行しようとしましたが、修正されました。 – nullpointer

関連する問題