【问题标题】:Restful MessageBodyWriter not found未找到 Restful MessageBodyWriter
【发布时间】:2015-01-26 20:15:03
【问题描述】:

我正在开发 Restful 服务。问题发生在我们迁移到 Glassfish 4.1 之后。错误字符串是:

严重:找不到媒体类型=application/xml、类型=...的 MessageBodyWriter。

但我的课程消耗应用程序/json。这是一个例子:

@Path("get_customer_info")
@Consumes("application/json;charset=utf8")
public class CustomerInfoResource {

    @Context
    private UriInfo context;

    public CustomerInfoResource () {
    }

    @POST
    public Player getPlayerInfo(){
    ....
    }
}

我已完成以下操作,但无法解决: 添加了所有 jersey jars 版本 2.13 , jackson jars 2.4.3 。还添加了 jersey-media-json-jackson-2.13.jar,其中包含 org.glassfish.jersey.jackson.JacksonFeature 类。顺便说一下ApplicationConfig类是:

@javax.ws.rs.ApplicationPath("resources")
public class ApplicationConfig extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<Class<?>>();
        try {
            Class jsonProvider = Class.forName("org.glassfish.jersey.jackson.JacksonFeature");
            resources.add(jsonProvider);
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        addRestResourceClasses(resources);
        return resources;
    }

【问题讨论】:

  • 您是否尝试在类级别添加@Produces 注释。似乎在编写响应时出现了问题。
  • 当然试过@Produces 但也没有解决。实际上,该项目在 Glassfish 4.0 中运行。该问题仅在 Glassfish 4.1 中出现。
  • 我认为原因是您的 post 方法默认生成 XML,而您的 Player 类不可序列化。如果您想轻松解决这个问题,并且不介意返回 Json,您可以使用 Gson 之类的东西,然后执行以下操作:BagOfPrimitives obj = new BagOfPrimitives(); Gson gson = new Gson(); String json = gson.toJson(obj);

标签: java json rest glassfish media-type


【解决方案1】:

我认为您在 MessageBodyReader 实现中提到了 @Consumes("application/json") 。我已经用@Produces 编写了一些自定义 MessageBodyWriter。它对我来说很好。我希望这也适用于 MessageBodyReader

参考:http://h2labz.blogspot.in/2014/12/marshalling-java-to-json-in-jax-rs.html

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 2015-12-07
    • 2019-05-14
    • 2017-02-18
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    相关资源
    最近更新 更多