Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC Jackson序列化引发空指针异常_Java_Json_Spring_Jackson - Fatal编程技术网

Java Spring MVC Jackson序列化引发空指针异常

Java Spring MVC Jackson序列化引发空指针异常,java,json,spring,jackson,Java,Json,Spring,Jackson,注意:我尝试了几乎所有可用的解决方案,但仍然无法使其工作 我在应用程序中使用Spring4。我在pom中添加了jackson LIB,如下所示: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> &l

注意:我尝试了几乎所有可用的解决方案,但仍然无法使其工作

我在应用程序中使用Spring4。我在pom中添加了jackson LIB,如下所示:

<dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.2.1</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.2.1</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.2.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>1.9.9</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.9.9</version>
            </dependency>
spring-config.xml看起来像这样,只是其中的一部分:

<mvc:annotation-driven/>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="order" value="1"/>
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes" value="application/json"/>
                </bean>
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes" value="text/plain;charset=UTF-8"/>
                </bean>
            </list>
        </property>
    </bean>
实体省略了getter和setter

@Entity(name="Employee")
public class Employee {

private String name;
private List<Address> addressList;

}
}
我正在rest控制器中使用@ResponseBody。我正在创建一个只提供姓名而不提供地址的员工。创建之后,我尝试将同一对象返回到UI。但在这种情况下,地址列表将为空。由于这个原因,我得到了null指针异常

我已尝试使用@JsonSerializeinclude=JsonSerialize.Include.NON_NULL和@jsoninclude jsoninclude.Include.NON_NULL注释地址字段。 但在这两种情况下,我也得到了同样的例外

我试过不同的方法。如果我创建了一个自定义转换器并在控制器中使用它,它就可以正常工作。但是我不想在所有的控制器方法中编写这些代码


有什么解决方案吗?

最后,我决定在实体中使用ArrayList实例化集合,现在它工作正常。其他方法都不起作用

我不明白。如果您只提供名称,为什么您希望地址列表为非空?为什么您的POM文件中有Jackson 1和Jackson 2?您应该按照Hibernate的建议,将列表实例化为ArrayList或其他什么。@SotiriosDelimanolis:我只是给出一个场景。您可以在创建员工详细信息后添加地址详细信息。您的JSON在请求正文中是什么样子的@尼尔的建议可能是最好的。