相关疑难解决方法(0)

使用Jersey在REST Web服务中返回JSON时,找不到media type = application/json的MessageBodyWriter

我正在尝试使用Jersey创建一个非常简单的REST服务.这是服务代码

@Path("/UserService")
public class UserService {

    @GET
    @Path("/users")
    @Produces(MediaType.APPLICATION_XML)
    public List<User> getUsers() {
        User user = new User(1, "Thomas", "Greene");
        List<User> userList = new ArrayList<User>();
        userList.add(user);
        return userList;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我通过Postman运行它时,它返回一个XML响应

邮递员的XML响应

现在,我希望得到一个JSON响应.所以,我将mediatype更改为application/json:

@Path("/UserService")
public class UserService {

    @GET
    @Path("/users")
    @Produces(MediaType.APPLICATION_JSON)
    public List<User> getUsers(){ 
        User user = new User(1, "Thomas", "Greene");
        List<User> userList = new ArrayList<User>();
        userList.add(user);
        return userList;
   }    
}
Run Code Online (Sandbox Code Playgroud)

它在Tomcat日志中给出了以下错误:

严重:找不到媒体类型= application/json的typeBodyWriter,type = class java.util.ArrayList,genericType = java.util.List.

有人可以指导我如何获得JSON响应吗?

rest json jersey

4
推荐指数
1
解决办法
1万
查看次数

如何在Payara 5中使用Jackson 2?

我正在将Jackson 2与Payara 4一起使用,并且我想在Payara 5中使用Jackson 2

使用JAX-RS,我还希望避免更改注释等。

在Payara 5中,默认的Jsonb提供程序是Yasson。有禁用它并使用Jackson的想法吗?欢迎所有评论/想法:-)

注意: Yasson非常有趣,但是处理抽象类或接口的序列化/反序列化要比放置Jackson注释复杂得多。我目前的理解是,它需要实现JsonbSerializer / Deserializer,但实际上只能在字段/方法上使用序列化器/反序列化器(对于类开放一个问题,这将非常有帮助)。无论如何,迁移到Yasson意味着将根据需要实现许多序列化器/反序列化器(对于实体以及当然是集合),但是我想这很困难。

jax-rs jsonb payara payara-micro jackson2

3
推荐指数
1
解决办法
1322
查看次数

在JAX-RS响应中使用ISO-8601日期

我正在使用GlassFish 4上的Java EE 7构建RESTful Web服务.在序列化包含java.util.Date对象的POJO 时,不包括时区信息.

如何自定义对象序列化以便java.util.Date包含时区信息?

例如,而不是这样:

{
  "id": 1234,
  "foo": "2014-05-19T13:53:49.392"
}
Run Code Online (Sandbox Code Playgroud)

我反而喜欢这样:

{
  "id": 1234,
  "foo": "2014-05-19T13:53:49.392+09:30"
}
Run Code Online (Sandbox Code Playgroud)

服务器的时区是GMT + 09:30.

java json glassfish jax-rs iso8601

1
推荐指数
1
解决办法
6870
查看次数

标签 统计

jax-rs ×2

json ×2

glassfish ×1

iso8601 ×1

jackson2 ×1

java ×1

jersey ×1

jsonb ×1

payara ×1

payara-micro ×1

rest ×1