凌岩歌-贰拾肆 2014-08-12 07:56 采纳率: 0%
浏览 4577

org/codehaus/jackson/JsonGenerationException

在添加这个后
启动tomcat6.0
会提示严重: StandardWrapper.Throwable java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonGenerationException

Eclipse的Web项目,jdk版本1.6
spring的servlet3.0.5
jackson的jar包3个:jackson-annotations-2.2.3.jar
jackson-core-2.2.4.jar
jackson-databind-2.2.4.jar

需求:前端发ajax请求,Controller方法处理,返回被转化json对象的List,前台在用each函数展示!

答案发邮箱 851173552@qq.com 感谢解答!

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 11:18
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由于Spring和Jackson之间存在兼容性问题导致的。解决这个问题的方法有以下几种:

    1. 使用JAX-RS 2.x版本:如果你正在使用的是Java 8或更高版本的Java,那么你可能需要升级到JAX-RS 2.x版本。

    2. 修改Jackson配置文件:在你的Jackson配置文件中,你可以添加一些注解来告诉Jackson如何处理异常。例如,你可以添加@ExceptionHandler注解来捕获特定类型的异常,并将其转换为JSON字符串。然后,在你的Controller方法中,你可以使用JacksonUtils.toJson()方法将异常转换为JSON字符串并返回给客户端。

    以下是修改后的Jackson配置文件示例:

    @Configuration
    public class JacksonConfig {
        @Bean
        public ObjectMapper objectMapper() throws Exception {
            ObjectMapper mapper = new ObjectMapper();
            // 添加自定义的异常处理器
            mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
            mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
    
            // 添加自定义的异常处理器
            mapper.registerModule(new AnnotationIntrospector.Module());
            mapper.setAnnotationIntrospector(new AnnotationIntrospector());
    
            return mapper;
        }
    }
    
    1. 使用Jackson的错误处理库:如果你正在使用的是Java 8或更高版本的Java,你可以考虑使用Jackson的错误处理库,它提供了更高级的错误处理功能,包括日志记录、堆栈跟踪等。

    以上就是解决Spring和Jackson之间兼容性问题的一些方法。希望这些建议能帮助你解决问题。

    评论

报告相同问题?