1. 程式人生 > >解決返回JSON時報錯:No converter found for return value of type:

解決返回JSON時報錯:No converter found for return value of type:

exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class com.tecno.wms.domain.User
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

低階錯誤,返回JSON時沒有引入解析JSON的相關包,解決方案:

1.使用jackson

<dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
          <version>2.7.0</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.7.5</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.7.0</version>
      </dependency>-->


2.使用fastjson

 <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.2.47</version>
 </dependency>

使用fastjson需要進行一些配置

<mvc:annotation-driven>
            <mvc:message-converters register-defaults="true">
                <!-- 配置Fastjson支援 -->
                <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>
                            <value>application/json</value>
                        </list>
                    </property>
                    <property name="features">
                        <list>
                            <value>WriteMapNullValue</value>
                            <value>QuoteFieldNames</value>
                        </list>
                    </property>
                </bean>
            </mvc:message-converters>
  </mvc:annotation-driven>

Controller方法:

    @RequestMapping("/user")
    @ResponseBody
    public User test(){

        User user = userMapper.selectByPrimaryKey(1001);
        return user;
    }

測試結果ok

{"userFirstLogin":null,"userId":1001,"userPassword":"6f5379e73c1a9eac6163ab8eaec7e41c","userUsername":"admin"}