找不到java Restful MessageBodyWriter
我正在做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(){
....
}
}
我做了以下事情,但无法解决: 添加了所有jersey jars 2.13版、jackson jars 2.4.3版。还添加了jersey-media-json-jackson-2.13。包含组织的jar。玻璃鱼。运动衫杰克逊。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;
}
# 1 楼答案
我认为您在MessageBodyReader实现中提到了@Consumes(“application/json”)。我已经用@products编写了一些定制的MessageBodyWriter。这对我来说很好。我希望这在MessageBodyReader中也适用
参考:http://h2labz.blogspot.in/2014/12/marshalling-java-to-json-in-jax-rs.html