今天使用了一个开源项目 是基于SpringMVC架构编写的项目 发现在Controller里加入@ResponseBody注解之后 返回的类型转换成JSON对象会出错
控制台里反馈
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found
for
return
value of type:
class
java.util.HashMap
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:
622
)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:
846
)
javax.servlet.http.HttpServlet.service(HttpServlet.java:
729
)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:
52
)
root cause
java.lang.IllegalArgumentException: No converter found
for
return
value of type:
class
java.util.HashMap
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:
158
)
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:
133
)
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:
165
)
org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:
80
)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:
126
)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:
806
)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:
729
)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:
85
)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:
959
)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:
893
)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:
970
)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:
861
)
javax.servlet.http.HttpServlet.service(HttpServlet.java:
622
)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:
846
)
javax.servlet.http.HttpServlet.service(HttpServlet.java:
729
)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:
52
)
note The full stack trace of the root cause is available in the Apache Tomcat/
8.0
.
21
logs.
Apache Tomcat/
8.0
.
21
spring-mvc里加入
<
bean
id
=
"mappingJacksonHttpMessageConverter"
class
=
"org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"
>
<
property
name
=
"supportedMediaTypes"
>
<
list
>
<
value
>application/json;charset=UTF-8</
value
>
</
list
>
</
property
>
</
bean
>
<
bean
class
=
"org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"
>
<
property
name
=
"messageConverters"
>
<
list
>
<
ref
bean
=
"mappingJacksonHttpMessageConverter"
/>
</
list
>
</
property
>
</
bean
>
pom文件里加入
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20140107</version> </dependency>