java - 问题 : java. lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/ServletContainer

标签 java rest maven jersey jersey-2.0

我写了一个 RESTful 网络服务。下面是我的 Maven 依赖项。

<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>

下面是我的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>

我在 eclipse 中将我的 JRE 指向 jre6 并将编译器版本指向 1.6。 Rest Web 服务运行良好。

我导出为 WAR 并将 WAR 文件放在 tomcat 的 webapps 文件夹中并部署。它正在部署。当我调用 Web 服务时出现问题,它抛出以下错误。

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版本是7,JDK是1.6,JRE是6。我明白是版本问题导致的错误。

我该如何解决这个问题?任何人都请帮助我。

最佳答案

您的 Jersey 库不支持 1.6 Java。看看是否有适用于 1.6 的 Jersey 版本,或者升级您的 Java。

更新

Jersey 2.6 及以下版本支持 Java 1.6。 Jersey 2.7 及更高版本使用 Java 7 编译。

关于java - 问题 : java. lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/ServletContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33010871/

相关文章:

java - 使用 Spring MVC 应用程序实现 Tiles 3

java - 从 Amazon Cognito 中的 AdminInitiateAuthResult 中提取用户名

Java - 分割一个字符串,可以用竖线分隔 ("\\I")、逗号分隔 (",")、分号分隔 (";") 等

.net - 如何在服务根地址(不带尾部斜杠)托管 WCF REST 服务?

java - 使用 spring RestTemplate 的休息客户端最佳实践

java - 运行 "web proxy"进行集成测试的 Maven 插件

java - 如何从网络获取值并将其转换为整数

java - JGit 克隆并获取修订散列

rest - 使用 Celery 或 RESTful API 服务深度学习模型?

java - maven资源过滤: insert a complete file into a property