带rest的SpringMVC无法将对象转换为json

erhoui1w  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(402)

我有一个springmvc应用程序,我已经向它添加了restweb服务。因此,用户可以使用视图与请求和响应进行通信,而应用程序可以使用rest并使用json使用req和resp。
web应用程序部分工作正常,问题是其余部分不工作。下面是初始化器类

  1. public class WebAppInitializer implements WebApplicationInitializer {
  2. @Override
  3. public void onStartup(ServletContext servletContext) throws ServletException {
  4. AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
  5. appContext.register(WebMvcConfig.class);
  6. ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
  7. "SpringDispatcher", new DispatcherServlet(appContext));
  8. dispatcher.setLoadOnStartup(1);
  9. dispatcher.addMapping("/");
  10. }
  11. }

web部件工作正常,但调用rest时出现错误:

  1. <h1>HTTP Status 500 – Internal Server Error</h1>
  2. <hr class="line" />
  3. <p><b>Type</b> Exception Report</p>
  4. <p><b>Message</b> No converter found for return value of type: class java.util.ArrayList</p>
  5. <p><b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.
  6. </p>
  7. <p><b>Exception</b></p>
  8. <pre>org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.ArrayList
  9. org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:224)
  10. org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
  11. org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
  12. org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:123)
  13. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
  14. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
  15. org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
  16. org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
  17. org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
  18. org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
  19. org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
  20. javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
  21. org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
  22. javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
  23. org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

我在maven pom中添加了jackson依赖项

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-databind</artifactId>
  4. <version>2.11.3</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.fasterxml.jackson.core</groupId>
  8. <artifactId>jackson-core</artifactId>
  9. <version>2.11.3</version>
  10. </dependency>

我的dto类(从rest请求返回)拥有使用lombok的所有getter和setter
请帮助了解需要什么额外的配置才能使其余部分正常工作。

bjp0bcyl

bjp0bcyl1#

解决了我忘记在配置类上添加注解@enablewebmvc的问题。这允许一组默认转换器。
添加注解后,一切正常

相关问题