坚持“org.codehaus.jackson.map.JsonMappingException:属性的冲突getter定义..”

时间:2013-12-17 02:35:27

标签: spring jsp

我正在制作一个包含查询的更新页面。当我执行它时,发生以下错误。

    2013. 12. 16 오후 9:51:47 org.apache.catalina.core.StandardWrapperValve invoke
: Servlet.service() for servlet ebsm-pot-servlet threw exception
org.codehaus.jackson.map.JsonMappingException: Conflicting getter definitions for property "dateRange": groove.spring.data.domain.Condition#isDateRange(0 params) vs groove.spring.data.domain.Condition#getDateRange(0 params)
at org.codehaus.jackson.map.ser.StdSerializerProvider._createAndCacheUntypedSerializer(StdSerializerProvider.java:740)
at org.codehaus.jackson.map.ser.StdSerializerProvider.findValueSerializer(StdSerializerProvider.java:344)
at org.codehaus.jackson.map.ser.impl.PropertySerializerMap.findAndAddSerializer(PropertySerializerMap.java:39)
at org.codehaus.jackson.map.ser.std.MapSerializer._findAndAddDynamic(MapSerializer.java:403)
at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:257)
at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186)
at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256)
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1606)
at org.springframework.web.servlet.view.json.MappingJacksonJsonView.renderMergedOutputModel(MappingJacksonJsonView.java:199)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

这是我的控制器

@RequestMapping(value="/encodeRegModDo")
public String encodeRegModDo(HttpServletResponse response,
                        HttpServletRequest request,
                        ModelMap model,
                        Condition condition,
                        @RequestParam Map<String, Object> maps,
                        @ModelAttribute Encode encode) throws Exception {

    if(!PotSessionUtils.isAdminLogin()) {
        PotSessionUtils.goAdminMainPage(response);
    } else {            

        EncodeRepository.updateReg(encode);

        model.addAttribute("condition", condition);         
    }       

    return "redirect:/innovativepot/encodeMng/encodeRegList";
}

存储库

@Statement(id="Encode.updateReg")
public void updateReg(Encode encode);

任何人都可以帮我解决错误吗?如果需要更多信息,请告诉我。

条件

 private String prcsSno;

public String getPrcsSno() {
return prcsSno;

}

public void setPrcsSno(String prcsSno){     this.prcsSno = prcsSno;

1 个答案:

答案 0 :(得分:2)

错误消息告诉您需要知道的一切。 groove.spring.data.domain.Condition类为属性dateRange提供了两个getter:

  • isDateRange()
  • getDateRange()

杰克逊不知道使用哪一个来序列化对象。因此要么删除或重命名,要么告诉杰克逊使用/忽略哪一个。如果班级是你的,那么我更喜欢第一个解决方案。有些东西不能 一个日期范围, 一个日期范围。

相关问题