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

AEM6.5中osgi-jax-rs-connector已停用,求替代REST服务API

在AEM 6.5中替代Jersey OSGI连接器的REST API方案

在AEM 6.5中,官方推荐使用Sling JAX-RS Extensions作为旧Jersey osgi-jax-rs-connector的替代方案,这是一套完全适配AEM/Sling OSGI生态的JAX-RS实现,能彻底解决「HTTP ERROR 503 Jersey is not ready yet!」这类初始化冲突问题。

核心要点:

  • 依赖替换:移除jersey-all-2.22.2、publisher-5.3.1、provider-security-2.2这类第三方Jersey包,改用AEM自带的org.apache.sling.jaxrs-api和org.apache.sling.jaxrs-extensions bundle,无需额外引入外部依赖。
  • 实现方式:
    • 编写标准JAX-RS资源类,使用@Path、@GET、@POST等JAX-RS 2.0注解定义接口
    • 通过Sling的OSGI注解(@Component、@Service)将资源注册为服务,可选择直接注册资源类,或者继承javax.ws.rs.core.Application来批量注册资源
  • 原生适配:
    • 无缝集成AEM的身份验证、资源解析、OSGI服务生命周期管理能力
    • 避免第三方Jersey与AEM内部组件的版本冲突,彻底解决初始化就绪问题

示例实现片段:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Service;

@Component(service = MyRestResource.class)
@Path("/myapi/v1")
public class MyRestResource {

    @GET
    @Path("/hello")
    @Produces(MediaType.TEXT_PLAIN)
    public String getHello() {
        return "Hello from AEM Sling JAX-RS";
    }
}

内容的提问来源于stack exchange,提问作者Gana G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:04:59