• spring mvc 常见错误


    1 返回400,

       —— 请求参数不正确

    2 返回406, 

    HTTP ERROR: 406

    NOT_ACCEPTABLE
     ————
    @RequestMapping(value = "/user/byAcc",
    method = RequestMethod.GET,
    produces = MediaType.APPLICATION_XML_VALUE + ";charset=UTF-8")

       —— 请求结果无法正确渲染,请求返回的是xml 就导致springmvc 无法解析了。。。 那就加上jackson-xml:

    <dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>${jackson.version}</version>
    </dependency>

    3 直接返回viewName,而不是viewName对应的 view(如jsp,velocity)

      这个通常是因为方法前有@ResponseBody注解导致的,或者方法对应类前有 @RestController,

    4  jetty 启动的时候出错:

    java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.SerializationConfig.withDefaultPrettyPrinter(Lcom/fasterxml/jackson/core/PrettyPrinter;)Lcom/fasterxml/jackson/databind/SerializationConfig;

     Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter]: Factory method 'mappingJackson2XmlHttpMessageConverter' threw exception; nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.SerializationConfig.withDefaultPrettyPrinter(Lcom/fasterxml/jackson/core/PrettyPrinter;)Lcom/fasterxml/jackson/databind/SerializationConfig;
            at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
            at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
            ... 145 more
        Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.SerializationConfig.withDefaultPrettyPrinter(Lcom/fasterxml/jackson/core/PrettyPrinter;)Lcom/fasterxml/jackson/databind/SerializationConfig;
            at com.fasterxml.jackson.dataformat.xml.XmlMapper.<init>(XmlMapper.java:82)
            at com.fasterxml.jackson.dataformat.xml.XmlMapper.<init>(XmlMapper.java:63)
            at com.fasterxml.jackson.dataformat.xml.XmlMapper.<init>(XmlMapper.java:49)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at java.lang.Class.newInstance(Unknown Source)
            at org.springframework.beans.BeanUtils.instantiate(BeanUtils.java:78)
            at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:514)
            at org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter.<init>(MappingJackson2XmlHttpMessageConverter.java:49)
            at org.springframework.boot.autoconfigure.web.JacksonHttpMessageConvertersConfiguration$MappingJackson2XmlHttpMessageConverterConfiguration.mappingJackson2XmlHttpMessageConverter(JacksonHttpMessageConvertersConfiguration.java:84)
            at org.springframework.boot.autoconfigure.web.JacksonHttpMessageConvertersConfiguration$MappingJackson2XmlHttpMessageConverterConfiguration$$EnhancerBySpringCGLIB$$f2b9ded.CGLIB$mappingJackson2XmlHttpMessageConverter$0(<generated>)
            at org.springframework.boot.autoconfigure.web.JacksonHttpMessageConvertersConfiguration$MappingJackson2XmlHttpMessageConverterConfiguration$$EnhancerBySpringCGLIB$$f2b9ded$$FastClassBySpringCGLIB$$911122bf.invoke(<generated>)
            at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
            at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309)
            at org.springframework.boot.autoconfigure.web.JacksonHttpMessageConvertersConfiguration$MappingJackson2XmlHttpMessageConverterConfiguration$$EnhancerBySpringCGLIB$$f2b9ded.mappingJackson2XmlHttpMessageConverter(<generated>)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
            ... 146 more

    原因是版本不匹配, spring MVC 4.3.6.RELEASE 和 com.fasterxml.jackson.core 的2.8.8 不兼容,或者jackson-annotations 和 jackson-core 的版本没有一致。 (2.8.8 是 我手动添加的com.fasterxml.jackson.core 的最新版本),把 com.fasterxml.jackson.core  版本改为 2.5.0 就ok了!! 

    5 ModelAndView 的view设置没有生效,

    @RequestMapping(value="/index_html", method=RequestMethod.GET)
    public ModelAndView indexView(){
    System.out.println("++++++++++++++");
    ModelAndView mv = new ModelAndView("index");
    mv.setViewName("abc"); // 期望解析到abc.jsp , 结果是index_html.jsp ,然后就出现了 404 ..

    return mv;
    }

     应该是import org.springframework.web.servlet.ModelAndView; 

    我居然不小心引入了import org.springframework.web.portlet.ModelAndView;

    参考http://bbs.csdn.net/topics/390543354

     
  • 相关阅读:
    tcpdump抓包
    openldap quick start guide
    深入理解PHP内核(六)函数的定义、传参及返回值
    深入理解PHP内核(五)函数的内部结构
    mongodb 关系、引用、覆盖索引查询
    mongodb php
    mongodb-$type、limit、skip、sort方法、索引、聚合
    mongodb简介与增删该查
    深入理解PHP内核(四)概览-PHP脚本的执行
    深入理解PHP内核(三)概览-SAPI概述
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/7339277.html
Copyright © 2020-2023  润新知