java - 无法使用jackson在springboot中返回JSON
问题描述
我已经使用 spring boot 创建了一个服务器,并且我正在使用 jackson 返回 json 对象以在前端进行 ajax 调用。
这是我的杰克逊配置。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.0</version>
</dependency>
这是我的模型:
package com.nitish.kumar.model;
public class ModelForState {
private Long empCount;
private String state;
public ModelForState(String state, Long empCount) {
super();
this.state = state;
this.empCount = empCount;
}
public Long getEmpCount() {
return empCount;
}
public void setEmpCount(Long empCount) {
this.empCount = empCount;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
这是我的查询:
@Query("SELECT " +
" new com.nitish.kumar.model.ModelForState(e.state, COUNT(e)) " +
"FROM " +
" Employees e " +
"GROUP BY " +
" e.state")
List<ModelForState> findStateCount();
还有一个简单的控制器:
@RequestMapping(value="/getEmployeeBasedOnState", method =RequestMethod.GET)
@ResponseBody
public List<ModelForState> getEmployeeBasedOnState()
{
List<ModelForState> state= dashboardrepositary.findStateCount();
return state;
}
这是困扰我的服务器的错误:(
Type Exception Report
Message Handler dispatch failed; nested exception is java.lang.AbstractMethodError: com.fasterxml.jackson.core.type.ResolvedType.getReferencedType()Lcom/fasterxml/jackson/core/type/ResolvedType;
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.AbstractMethodError: com.fasterxml.jackson.core.type.ResolvedType.getReferencedType()Lcom/fasterxml/jackson/core/type/ResolvedType;
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1054)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
Root Cause
java.lang.AbstractMethodError: com.fasterxml.jackson.core.type.ResolvedType.getReferencedType()Lcom/fasterxml/jackson/core/type/ResolvedType;
com.fasterxml.jackson.core.type.ResolvedType.isReferenceType(ResolvedType.java:59)
com.fasterxml.jackson.datatype.jdk8.Jdk8TypeModifier.modifyType(Jdk8TypeModifier.java:20)
com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:413)
com.fasterxml.jackson.databind.type.TypeBindings._resolveBindings(TypeBindings.java:305)
com.fasterxml.jackson.databind.type.TypeBindings._resolve(TypeBindings.java:203)
com.fasterxml.jackson.databind.type.TypeBindings.findType(TypeBindings.java:121)
com.fasterxml.jackson.databind.type.TypeFactory._fromVariable(TypeFactory.java:901)
com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:399)
com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
com.fasterxml.jackson.databind.type.TypeFactory._collectionType(TypeFactory.java:959)
com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:774)
com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:386)
com.fasterxml.jackson.databind.type.TypeFactory.constructType(TypeFactory.java:358)
com.fasterxml.jackson.databind.cfg.MapperConfig.constructType(MapperConfig.java:268)
com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1112)
com.fasterxml.jackson.databind.SerializerProvider._findExplicitUntypedSerializer(SerializerProvider.java:1082)
com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.hasSerializerFor(DefaultSerializerProvider.java:392)
com.fasterxml.jackson.databind.ObjectMapper.canSerialize(ObjectMapper.java:2408)
org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.canWrite(AbstractJackson2HttpMessageConverter.java:176)
org.springframework.http.converter.AbstractGenericHttpMessageConverter.canWrite(AbstractGenericHttpMessageConverter.java:76)
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.getProducibleMediaTypes(AbstractMessageConverterMethodProcessor.java:373)
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:230)
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:180)
org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
Note The full stack trace of the root cause is available in the server logs.
它昨晚工作,但重新启动后突然停止工作。
我是Java springboot的新手,我什至无法理解以下错误是什么,尝试将tomcat安装为通配符,但效果甚微。