【发布时间】:2015-01-03 15:57:30
【问题描述】:
我在尝试使用 POJOS 作为参数时遇到了 NPE 的一些问题。 我正在使用默认配置将 war maven 生成部署到 tomcat 7。
我的方法的签名是这样的。
@POST
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
@Path("/do/")
public OtherPojo doSomething(MyPOJO pojo) {
Pojo 使用 @XmlRootElement 注释 但是,当我调用 url 时,pojo 为空,因此我得到了 NPE。 我的 pom.xml
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-metainf-services</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
我试过球衣 2.13 和 2.6 还有杰克逊 2.4
另外我没有设置应用程序,我的类只有注释
@Path("/somePath/")
public class SomeClass {
这是在我的 web.xml 中配置的
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.beer.routes</param-value>
</init-param>
我读到我可能需要注册 JacksonFeature,但我不知道该怎么做。
【问题讨论】:
标签: json maven tomcat pojo jersey-2.0