Thema: java.lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/ServletContainer
Ich geschrieben habe, eine RESTful-web-services. Unten ist mein maven-Abhängigkeiten.
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>jaxrs-api</artifactId>
<version>3.0.12.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.annotation</groupId>
<artifactId>jboss-annotations-api_1.1_spec</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>net.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.12.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.12.Final</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
Unten ist mein web.xml
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Habe ich darauf meine JRE jre6 und der compiler-version auf 1.6 fest in meinem eclipse. Rest Web Services sind einwandfrei.
Ich exportieren als KRIEG und stellen Sie die war-Datei in den webapps-Ordner von tomcat und bereitstellen. Es wird immer bereitgestellt. Problem kommt, wenn ich rufen Sie das Web-service, es wirft die folgende Fehlermeldung.
java.lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/ServletContainer : Unsupported major.minor version 51.0 (unable to load class org.glassfish.jersey.servlet.ServletContainer)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2961)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
Tomcat version 7 und JDK 1.6 und JRE 6. Ich verstehe, dass Fehler kommt, weil von version problem.
Wie kann ich dieses Problem beheben? Jemand pls helfen Sie mir mit diesem.
InformationsquelleAutor Kaushi | 2015-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre jersey-lib nicht unterstützt Java 1.6. Entweder sehen, ob es eine jersey-build, der arbeitet mit 1.6 oder aktualisieren Sie Ihre Java.
UPDATE
Java 1.6 unterstützt wird, in Jersey 2.6 und unten. Jersey 2.7 und später kompiliert mit Java 7.
Gut, die alten auf jeden Fall. Sie haben einen speziellen build für jdk6, empfehle ich Check-out Maven central für die Bibliotheken.
Jersey <= 2.6
in der pom.xml bin mit version 2.17. Aber noch kein Glück
2.17 > 2.6
InformationsquelleAutor Kayaman
Das problem ist, wie Sie wissen
using a version of jersey jar which is compiled using Java 7 and you are running using Java 6
.Entweder downgrade Ihres Jersey-version oder aktualisieren Sie Ihre Java-version 7.
Unsupported major.minor version 51.0
InformationsquelleAutor Sajan Chandran
Dies ist, weil Sie es kompiliert haben Sie eine höhere version von Java. Zum Beispiel, kompilieren Sie die Java-7-code, die mit einem switch auf Strings, dann versuchen, die Anwendung auszuführen, die auf JRE 6 (das nicht unterstützen-switch auf Strings), und das ist, was Sie erhalten.
Re-kompilieren Sie Ihren code in Java 6, oder führen Sie den code mit der Java-version, in der Sie es kompiliert haben.
ob es die jersey-code oder nicht, das problem bleibt das gleiche. Wenn Sie brauchen, um mit Java 6, was nicht empfehlenswert ist, entweder Sie haben zu suchen, eine Jersey, die unterstützt Java 6 oder eine alternative gefunden werden.
InformationsquelleAutor Stultuske