在没有 web.xml 的情况下配置 POJOMappingFeature
Configuring POJOMappingFeature without web.xml
我正在使用 Jersey 将 Java 对象编组到 JSON,如下所示:
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.IOException;
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Path("/test")
public Response replay(String input) throws IOException {
return Response.ok().entity(new MyClass()).build();
}
我收到以下异常:
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.company.MyClass, and Java type class com.company.MyClass, and MIME media type application/octet-stream was not found.
我知道这里的解决方案是:
- 添加
jackson-jaxrs-json-provider
依赖项
- 使用
com.sun.jersey.api.json.POJOMappingFeature
POJOMappingFeature
一般配置在web.xml
。
对于注释驱动且不使用 web.xml
的应用程序是否有替代方案?
谢谢
您应该可以将其添加到您的 pom 文件中。
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
如果您从 Jersey maven 原型创建项目,通常会注释掉此依赖项。
com.sun.jersey.api.json.POJOMappingFeature 仅适用于版本 1.* 的 Jersey。包名称从 com.sun.* 更改为 org.glassfish.* 从 Jersey 的版本 1 到 2.
我正在使用 Jersey 将 Java 对象编组到 JSON,如下所示:
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.IOException;
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Path("/test")
public Response replay(String input) throws IOException {
return Response.ok().entity(new MyClass()).build();
}
我收到以下异常:
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.company.MyClass, and Java type class com.company.MyClass, and MIME media type application/octet-stream was not found.
我知道这里的解决方案是:
- 添加
jackson-jaxrs-json-provider
依赖项 - 使用
com.sun.jersey.api.json.POJOMappingFeature
POJOMappingFeature
一般配置在web.xml
。
对于注释驱动且不使用 web.xml
的应用程序是否有替代方案?
谢谢
您应该可以将其添加到您的 pom 文件中。
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
如果您从 Jersey maven 原型创建项目,通常会注释掉此依赖项。
com.sun.jersey.api.json.POJOMappingFeature 仅适用于版本 1.* 的 Jersey。包名称从 com.sun.* 更改为 org.glassfish.* 从 Jersey 的版本 1 到 2.