我正致力于Restful服务 . 我们搬到Glassfish 4.1后发生了这个问题 . 错误字符串是:
SEVERE: MessageBodyWriter not found for media type=application/xml, type=...
但我的类使用application / json . 这是一个例子:
@Path("get_customer_info")
@Consumes("application/json;charset=utf8")
public class CustomerInfoResource {
@Context
private UriInfo context;
public CustomerInfoResource () {
}
@POST
public Player getPlayerInfo(){
....
}
}
我做了以下工作并无法解决它:添加了所有球衣 jar 2.13版, Jackson jar 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;
}
1 回答
我想你已经在MessageBodyReader实现中提到了@Consumes(“application / json”) . 我已经用@Produces编写了一些自定义的MessageBodyWriter . 它对我来说很好 . 我希望在MessageBodyReader的情况下这对你也有用
参考:http://h2labz.blogspot.in/2014/12/marshalling-java-to-json-in-jax-rs.html