我们在应用程序中使用了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
但这个链接与我的问题没有关系。 任何人都可以帮忙
答案 0 :(得分:0)
问题是同一个jar的多个版本,而“MyClassWithStaticMethods”反过来使用它(感谢@Abhijith Nagarajan要求查看它)。
我的方法是使用guava API,应用程序的另一部分是使用旧的google-collections。这两个问题造成了这个问题。
此致