【问题标题】:Issue while creating spring boot maven application创建 Spring Boot Maven 应用程序时出现问题
【发布时间】:2015-07-09 04:18:59
【问题描述】:

我正在使用 Spring Boot 创建一个基于 Rest 的 Web 服务,而在 tomcat 中部署时没有出错。但是当我尝试点击带有 @RequestMapping 注释的 RestController 方法并尝试在浏览器。

出现错误:

输入异常报告

message 圆形视图路径 [错误]:将调度回当前 处理程序 URL [/services-0.0.1-SNAPSHOT/error] 再次。检查你的 ViewResolver 设置! (提示:这可能是未指定的结果 视图,由于默认视图名称生成。)

描述服务器遇到了一个内部错误,导致它无法完成这个请求。

例外

javax.servlet.ServletException: Circular view path [error]: would dispatch back to the current handler URL [/services-0.0.1-SNAPSHOT/error] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
    org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalResourceView.java:205)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:145)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextHeaderFilter.doFilterInternal(EndpointWebMvcAutoConfiguration.java:291)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:102)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration$MetricsFilter.doFilterInternal(MetricFilterAutoConfiguration.java:90)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
    org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:101)
    org.springframework.boot.context.web.ErrorPageFilter.forwardToErrorPage(ErrorPageFilter.java:173)
    org.springframework.boot.context.web.ErrorPageFilter.handleException(ErrorPageFilter.java:156)
    org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
    org.springframework.boot.context.web.ErrorPageFilter.access$000(ErrorPageFilter.java:59)
    org.springframework.boot.context.web.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:101)

我无法弄清楚这个问题:(

在这方面的任何帮助都将不胜感激。

【问题讨论】:

    标签: spring spring-boot


    【解决方案1】:

    检查你的控制器类是否标有@RestController。如果没有,并且您只是使用@Controller 对其进行了注释,则必须将@Controller 注释更改为@RestController。您可以通过将@ResponseBody 添加到您的控制器类或用于restful API 的每个控制器方法来获得相同的结果。

    【讨论】:

    • 我的控制器用@RestController 注释。当我运行启动应用程序的主要方法时,它给出了其他问题:
    • 哦!此错误发生在弹簧处理某些控制器的异常期间。我错过了。对不起。请向我展示您的 Spring MVC 异常处理并查看解析器配置。
    • 在控制器中:@RequestMapping(value = "profile", method = RequestMethod.GET) public Profile profile() { System.out.println("Test Controller");配置文件配置文件=新配置文件(); profile.setAccountType(123); profile.setCardCity("KA");返回资料; }
    • 此代码不用于异常处理,也不用于查看解析器。你能告诉我你的整个spring bean定义文件吗?
    猜你喜欢
    • 2019-07-25
    • 2019-07-24
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多