使用Spring / Hibernate / Jackson。获取错误 - 无法读取JSON:无法初始化类异常

时间:2013-12-16 10:45:32

标签: java json spring hibernate

我们在应用程序中使用了Jackson,spring和hibernate的组合。 我在上面的代码下面工作正常

控制器

 @RequestMapping(value = ServiceEndpoints.MyService, method = RequestMethod.POST)
@ResponseBody   
public MyResponse updateEntity(final HttpServletRequest request, @RequestBody final MyEntity myEntity )  {
//Service Call  
}

实体

 @Entity
 public class MyEntity extends BaseEntity implements Serializable {
    @Column
private String metaTags;

    public String getMetaTags() {
    return metaTags;
}

public void setMetaTags(String metaTags) {          
    this.metaTags = metaTags;
}

servlet的contect.xml

        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <bean id="mappingJacksonHttpMessageConverter"
                   class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="objectMapper">
                    <ref bean="jacksonObjectMapper" />
                </property>
            </bean>
        </list>
    </property>
</bean>

以上代码工作正常。我们从UI获取数据,它从JSON转换为实体,我们可以保存相同的数据。 但后来我添加了一个代码来清理Entity字段中的一些charatcers,如下所示

   public void setMetaTags(String comments) {       
    this.metaTags = MyClassWithStaticMethods.OnesuchStaticMethod(metaTags); 

}

我得到以下异常

Could not read JSON: Could not initialize class MyClassWithStaticMethods (through reference chain: MyEntity["metaTags"]); 
 nested exception is org.codehaus.jackson.map.JsonMappingException: Could not initialize class MyClassWithStaticMethods (through reference chain: MyEntity["metaTags"])

现在我确实经历了像这样的一些链接 http://cowtowncoder.com/blog/archives/2010/08/entry_411.html

但这个链接与我的问题没有关系。 任何人都可以帮忙

1 个答案:

答案 0 :(得分:0)

问题是同一个jar的多个版本,而“MyClassWithStaticMethods”反过来使用它(感谢@Abhijith Nagarajan要求查看它)。

我的方法是使用guava API,应用程序的另一部分是使用旧的google-collections。这两个问题造成了这个问题。

此致