当前位置:  开发笔记 > 编程语言 > 正文

AEM上的RESTful服务

如何解决《AEM上的RESTful服务》经验,为你挑选了1个好方法。

我试图在AEM上公开一些RESTfull Web服务.我已按照此博客中的说明操作.以下是我的服务类.像/ helloservice/sayhi这样的简单请求工作得很好,但是采用路径参数和查询参数的方法(/withparameter/{userid}/query?q=xyz&prod=abc)返回404错误页面.请帮我解决一下这个.

我正在使用AEM 5.6和Java 7

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
import com.foo.bar.service.SampleResource;

@Service
@Component(metatype=true)
@Path("/helloservice")
public class SampleResourceImpl implements SampleResource{

    @GET
    @Path("/sayhi")
    @Produces({MediaType.APPLICATION_JSON})
    public String helloWorld(){
        return "Hello World";
    }

    @GET
    @Path("/getoperation")
    @Produces({MediaType.TEXT_PLAIN})
    public String getServiceOperation(){
        return "Hello getoperation!";
    }

    @GET
    @Path("/withparameter/{userid}")
    @Produces({MediaType.TEXT_PLAIN})
    public String getWithParameter(@PathParam("userid") String userid){
        return "Path parameter : "+userid;
    }

    @GET
    @Path("/query")
    @Produces({MediaType.TEXT_PLAIN})
    public String getURLParameters(@QueryParam("q") String q, @QueryParam("prod") String prod){
        return "Query params : "+q+", "+prod;
    }

}

任何帮助表示感谢,谢谢!



1> Bertrand Del..:

目前正在讨论如何在基于Apache Sling(包括AEM)的系统中使用JAX-RS ,网址为https://issues.apache.org/jira/browse/SLING-2192.从这个讨论,https://github.com/wcm-io-caravan/caravan-jaxrs在我看来就像一个很好的解决方案在OSGi环境中使用JAX-RS资源.该项目的集成测试在Sling上运行,因此它很可能在AEM上运行.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有