我正致力于Restful服务。我们搬到Glassfish 4.1后发生了这个问题。错误字符串是:
严重:找不到媒体类型= application / xml的MessageBodyWriter,类型= ...
但我的类使用application / json。这是一个例子:
@Path("get_customer_info")
@Consumes("application/json;charset=utf8")
public class CustomerInfoResource {
@Context
private UriInfo context;
public CustomerInfoResource () {
}
@POST
public Player getPlayerInfo(){
....
}
}
我做了以下事情但无法解决: 添加了所有球衣罐2.13版,杰克逊罐2.4.3。还添加了包含org.glassfish.jersey.jackson.JacksonFeature类的jersey-media-json-jackson-2.13.jar。顺便说一下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;
}
答案 0 :(得分:0)
我想你已经在MessageBodyReader实现中提到了@Consumes(&#34; application / json&#34;)。我已经用@Produces编写了一些自定义的MessageBodyWriter。它对我来说很好。我希望在MessageBodyReader
的情况下,这对你也有用参考:http://h2labz.blogspot.in/2014/12/marshalling-java-to-json-in-jax-rs.html