java - Java 中使用 Jersey 的 Hashmap 示例?

标签 java web-services maven jersey

我目前是第一次使用 Web 服务,我必须使用 Maven 在 Jersey 中编写一些不同 Web 服务的示例,

但我似乎只能让它在 Spark 中工作(这是我的 Spark 示例)

//Hashmap Example
get("add/:num1/:num2", new Route() {

    @Override
    public Object handle(Request rqst, Response rspns) throws Exception {
        rspns.type("application/json");

        int num1 = Integer.parseInt(rqst.params(":num1"));
        int num2 = Integer.parseInt(rqst.params(":num2"));
        HashMap<String, Integer> map = new HashMap<>();
        map.put("result", num1+num2);
        Gson gson = new Gson();
        return gson.toJson(map);
    }
});

我只需要一些帮助来编写 Jersey 示例?

您能提供的任何帮助都会很棒

最佳答案

首先,使用 Jersey,您需要注册一个 JsonProvider,以便您可以返回一个对象,并且它将以 JSON 形式为您序列化。您也可以毫不费力地支持 XML。

我个人使用 jackson 。 Jersey 的默认设置是 Moxy,它不支持 map ,并且即使使用简单的列表也会出现“问题”(您需要包装它们),请参阅 this post

使用 Jackson 配置 Jersey:https://jersey.java.net/documentation/latest/media.html#json.jackson

Moxy map 问题:How to return a JSON object from a HashMap with Moxy and Jersey

这是泽西网络服务的工作示例,假设您使用的是 Jackson,则返回 map

@GET
@Path("add/{num1}/{num2}")
@Produces(MediaType.APPLICATION_JSON)
public Response getClubNames(@PathParam("num1") Integer num1, @PathParam("num2") Integer num2) {

    Map<String, Object> returnMap = new HashMap<String, Object>();

    returnMap.put("resultAsString", Integer.toString(num1 + num2));
    returnMap.put("resultAsInt", num1 + num2);

    return Response.status(Response.Status.OK).entity(returnMap).build();

}

个人注释,当您开始使用 Jersey 时:

我真的很喜欢 Jersey 。但 HK2 存在严重的硬耦合问题。 https://java.net/jira/browse/JERSEY-1933 。这超出了范围,但在选择 JAX-RS 2.0 实现之前您应该了解这意味着什么。在独立的 Web 应用程序中,Jersey 的工作方式就像一个魅力。

关于java - Java 中使用 Jersey 的 Hashmap 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534059/

相关文章:

java - 谷歌 OAuth : how to use a refresh token?

java - XMPP Smack 无法接收消息

java - JAXWS Metro 客户端,用于使用 usernametoken 配置文件的安全 Web 服务

php - PHP 环境中的 Web 服务代理生成器

java - 插件org.jooq.pro :jooq-codegen-maven or one of its dependencies could not be resolved

java - 无法使用相同的按键来连接/断开两个方 block

java - 如何将有界泛型扩展为另一个有界泛型?

java - 如何避免 "505: HTTP Version not supported"错误?

Java JDBC MySQL 查询失败

java - 使用 Maven 插件进行 MockServer 分析 - 输出为 Java