首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Jersey返回JSONP

从Jersey返回JSONP
EN

Stack Overflow用户
提问于 2012-11-15 14:38:49
回答 2查看 8.2K关注 0票数 9

我目前正在使用Jersey返回JSON。我如何返回JSONP呢?例如,我当前的RESTful方法是:

代码语言:javascript
复制
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Order> getOrders() {
    return OrderRepository.getOrders();
}

我想部署在Tomcat上(不想使用GlassFish)。我对Jersey的唯一依赖是:

代码语言:javascript
复制
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.9.1</version>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.9.1</version>
    </dependency>

还需要哪些额外的依赖项?代码将如何更改?

谢谢。

Naresh

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-15 18:13:31

看看Jersey中的JSONP示例(特别是ChangeList资源)(您可以下载整个项目的here)。

你基本上需要做的就是这样:

代码语言:javascript
复制
@GET
@Produces(MediaType.APPLICATION_JSON)
public JSONWithPadding getOrders() {
    return new JSONWithPadding(new GenericEntity<List<Order>>(OrderRepository.getOrders()){});
}
票数 9
EN

Stack Overflow用户

发布于 2014-10-14 20:48:37

正如@s_t_e_v_e所说,修改正确的答案很重要。它应该是这样的:

代码语言:javascript
复制
@GET
@Produces({"application/javascript"})
public JSONWithPadding getOrdersJSonP(@QueryParam("callback") String callback) {
    List<Order> orderList = OrderRepository.getOrders();
    return new JSONWithPadding(new GenericEntity<List<Order>>(orderList){}, 
                callback);
    }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13392623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档