web-dev-qa-db-fra.com

java.lang.UnsupportedClassVersionError: version majeure incorrecte à offset = 6

J'ai déployé un WAR file dans le dossier webapps de ma Tomcat. Et quand je commence mon Tomcat, comme ci-dessous

C:\Apache-Tomcat-6.0.35\bin>startup.bat
Using CATALINA_BASE:   "C:\Apache-Tomcat-6.0.35"
Using CATALINA_HOME:   "C:\Apache-Tomcat-6.0.35"
Using CATALINA_TMPDIR: "C:\Apache-Tomcat-6.0.35\temp"
Using JRE_HOME:        "C:\Program Files (x86)\IBM\RationalSDLC\Common\Java5.0\jre"
Using CLASSPATH:       "C:\Apache-Tomcat-6.0.35\bin\bootstrap.jar"

Je reçois cette exception ci-dessous-

SEVERE: Error deploying web application archive DirectoryServer.war
Java.lang.UnsupportedClassVersionError: (com/services/rest/Listener) bad major version at offset=6 (unable to load class com.services.rest.Listener)
    at org.Apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.Java:2822)
    at org.Apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.Java:1159)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1647)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1526)
    at org.Apache.catalina.startup.WebAnnotationSet.loadClassAnnotation(WebAnnotationSet.Java:145)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.Java:73)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.Java:56)
    at org.Apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.Java:297)
    at org.Apache.catalina.startup.ContextConfig.start(ContextConfig.Java:1078)
    at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:261)
    at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:142)
    at org.Apache.catalina.core.StandardContext.start(StandardContext.Java:4612)
    at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:799)
    at org.Apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:779)
    at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:601)
    at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:943)
    at org.Apache.catalina.startup.HostConfig.deployWARs(HostConfig.Java:778)
    at org.Apache.catalina.startup.HostConfig.deployApps(HostConfig.Java:504)
    at org.Apache.catalina.startup.HostConfig.start(HostConfig.Java:1317)
    at org.Apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.Java:324)
    at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:142)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1065)
    at org.Apache.catalina.core.StandardHost.start(StandardHost.Java:840)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1057)
    at org.Apache.catalina.core.StandardEngine.start(StandardEngine.Java:463)
    at org.Apache.catalina.core.StandardService.start(StandardService.Java:525)
    at org.Apache.catalina.core.StandardServer.start(StandardServer.Java:754)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:595)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:79)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:618)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:289)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:414)

Et voici ma version Java-

C:\Apache-Tomcat-6.0.35\bin>Java -version
Java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Quelqu'un peut-il suggérer pourquoi cela se produit?

10
arsenal

Vous avez essentiellement compilé votre code avec JDK 1.6 mais l’exécutant avec Java 5 - Assurez-vous simplement que Java 6 est exécuté.

18
Biju Kunjummen

Même j'ai rencontré le même problème. Le problème est la version de classe inappropriée, par exemple. compiler avec jre différent.

Solution: SI vous utilisez Eclipse ou RAD, définissez les paramètres de modification du compilateur selon vos besoins, ainsi que la même configuration en configuration de projet en cliquant sur "Configurer les paramètres spécifiques au projet". Windows-> Préférences-> Compilateur-> cliquez sur le lien "Configurer les paramètres spécifiques au projet".

2
Arun K

Pour moi, le correctif consistait à définir la variable système Java_Home sur le chemin correct. 

 Java_Home system variable

0
SpeedyAkron