You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求兼容JDK5的Jersey版本及JDK5下REST服务示例

兼容JDK 5的Jersey版本及REST服务示例

一、兼容JDK 5的Jersey版本

Jersey 1.x系列从1.18版本开始就升级要求JDK 6及以上了,Jersey 1.17.1是官方明确支持JDK 5的最后一个稳定版本,完全适配你的JDK 5环境,放心用就好。

二、JDK 5环境下的REST服务示例

下面是一个简单的基于Jersey 1.17.1的JSON REST服务示例,涵盖核心代码和配置:

1. 依赖配置(Maven)

如果用Maven管理依赖,在pom.xml里添加以下配置:

<dependencies>
    <!-- Jersey核心依赖 -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.17.1</version>
    </dependency>
    <!-- JSON支持依赖 -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17.1</version>
    </dependency>
    <!-- JDK5兼容的Servlet API -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

不用Maven的话,直接下载这些jar包:jersey-server-1.17.1.jar、jersey-json-1.17.1.jar、jsr311-api-1.1.1.jar、asm-3.1.jar(核心依赖),以及JSON相关的jackson-core-asl-1.9.13.jar、jackson-mapper-asl-1.9.13.jar等(Jersey 1.17.1依赖这些)。

2. REST资源类

创建一个处理JSON请求响应的资源类:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class HelloResource {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public User getHello() {
        User user = new User();
        user.setId(1);
        user.setName("Alice");
        user.setEmail("alice@example.com");
        return user;
    }

    // JDK5下的POJO类,必须提供getter和setter
    public static class User {
        private int id;
        private String name;
        private String email;

        public int getId() { return id; }
        public void setId(int id) { this.id = id; }

        public String getName() { return name; }
        public void setName(String name) { this.name = name; }

        public String getEmail() { return email; }
        public void setEmail(String email) { this.email = email; }
    }
}

3. 应用配置类

创建Jersey的应用配置类,注册资源和JSON提供者:

import com.sun.jersey.api.core.PackagesResourceConfig;
import com.sun.jersey.api.json.JSONConfiguration;

public class MyApplication extends PackagesResourceConfig {
    public MyApplication() {
        // 扫描资源类所在的包,替换成你的实际包名
        super("com.yourpackage");
        // 启用JSON POJO自动映射
        getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
    }
}

4. Web.xml配置

在WEB-INF/web.xml里配置Jersey的Servlet:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">

    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.yourpackage.MyApplication</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>
</web-app>

5. 部署测试

把项目打包成WAR包,部署到兼容JDK5的Servlet容器(比如Tomcat 6.x,它完美支持JDK5),然后访问http://localhost:8080/你的应用名/api/hello,就能得到JSON响应:

{"id":1,"name":"Alice","email":"alice@example.com"}

注意事项

  • 容器也要选JDK5兼容的,Tomcat 6.x、Jetty 7.x都可以,Jetty 8开始就要求JDK6+了。
  • 如果遇到JSON序列化问题,检查所有依赖jar包版本是否和Jersey 1.17.1匹配,避免版本冲突。

内容的提问来源于stack exchange,提问作者Revathi Chandramohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:20:43