Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Circular

2021-05-25 13:08:29.219 ERROR 17508 — [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Circular view path [mybatis]: would dispatch back to the current handler URL [/mybatis] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)] with root cause

javax.servlet.ServletException: Circular view path [mybatis]: would dispatch back to the current handler URL [/mybatis] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
at org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalResourceView.java:210) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:148) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1396) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1141) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1080) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.7.jar:5.3.7]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.7.jar:5.3.7]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) ~[tomcat-embed-core-9.0.46.jar:4.0.FR]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.7.jar:5.3.7]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.46.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.46.jar:9.0.46]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.7.jar:5.3.7]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.7.jar:5.3.7]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.7.jar:5.3.7]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.7.jar:5.3.7]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.7.jar:5.3.7]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.7.jar:5.3.7]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.coyote.AbstractProtocol C o n n e c t i o n H a n d l e r . p r o c e s s ( A b s t r a c t P r o t o c o l . j a v a : 893 ) [ t o m c a t − e m b e d − c o r e − 9.0.46. j a r : 9.0.46 ] a t o r g . a p a c h e . t o m c a t . u t i l . n e t . N i o E n d p o i n t ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.tomcat.util.net.NioEndpoint ConnectionHandler.process(AbstractProtocol.java:893)[tomcatembedcore9.0.46.jar:9.0.46]atorg.apache.tomcat.util.net.NioEndpointSocketProcessor.doRun(NioEndpoint.java:1707) [tomcat-embed-core-9.0.46.jar:9.0.46]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.46.jar:9.0.46]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_291]
at java.util.concurrent.ThreadPoolExecutor W o r k e r . r u n ( T h r e a d P o o l E x e c u t o r . j a v a : 624 ) [ n a : 1.8. 0 2 91 ] a t o r g . a p a c h e . t o m c a t . u t i l . t h r e a d s . T a s k T h r e a d Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_291] at org.apache.tomcat.util.threads.TaskThread Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0291]atorg.apache.tomcat.util.threads.TaskThreadWrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.46.jar:9.0.46]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_291]

错误原因
我们返回值返回的是一组,但是我们用的是返回单个的
在这里插入图片描述
注解Controller 改为RestController

import java.util.List;

@RestController
public class ControllerDemo {
    @Autowired
    private UserMapper userMapper;

    @GetMapping("/mybatis")
    public List<User> print(){
        List<User> all = userMapper.findAll();
        return all;
    }
}

或者在@getMapping 上面加一个 @ResponseBody返回多个结果

import java.util.List;

@RestController
public class ControllerDemo {
    @Autowired
    private UserMapper userMapper;
	@ResponseBody
    @GetMapping("/mybatis")
    public List<User> print(){
        List<User> all = userMapper.findAll();
        return all;
    }
}

然后在运行就解决啦

### 回答1: 这是一个关于Servlet的异常信息,提示出现了循环视图路径[index],会再次派发回当前的处理程序URL[/index]。需要检查视图解析器的设置,确定是不是由于默认视图名称生成导致了未指定视图的情况。 ### 回答2: 这段错误信息是从Java Spring框架中抛出的,其中'servlet.service() for servlet [dispatcherservlet] in context with path []'表示Spring MVC框架中的DispatcherServlet正在处理一个请求。异常信息提示说,出现了一个循环的视图路径[circular view path],将会再次转发到当前的请求处理URL[/index],需要检查视图解析器[view resolver]的设置。提示中还提到可能是由于缺少指定视图名称[default view name generation]而导致的。 在这里,视图解析器的作用是将Spring MVC中的控制器方法返回的逻辑视图名与实际的视图资源进行匹配,进而将其返回给客户端。通常情况下,Spring会自动查找匹配逻辑视图名的视图资源,但这需要视图解析器配置正确。例如,我们在配置视图解析器时,需要指定视图前缀和后缀,这样Spring才能正确地找到视图资源。 但是,如果逻辑视图名与其他视图或URL形成了循环,则视图解析器无法解析正确的视图资源。这可能是由于开发人员在编写代码时使用了错误的逻辑视图名或URL,还可能是由于逻辑视图名或URL命名不当,导致出现歧义。为了解决这个问题,我们需要检查Spring MVC应用程序中的所有控制器方法、视图名称和 URL的定义,并确保它们的命名没有冲突或歧义。我们还需要检查视图解析器的配置,以确保其正确地设置了视图前缀和后缀等参数。 总之,这个错误信息表明Spring MVC框架无法找到正确的视图资源,可能是由于视图名或URL与其他部分形成了循环,也可能是由于视图解析器的配置有误。为了解决这个问题,我们需要仔细检查应用程序的代码和配置,找到并纠正问题。 ### 回答3: 这是一个关于Java Web开发中DispatcherServlet异常的提示信息。在Java Web开发中,DispatcherServlet是一个核心组件,它负责接收客户端请求,并将请求分发给对应的处理器进行处理。当请求经过DispatcherServlet处理后,将会返回一个视图(view)给客户端,展示处理结果。然而,在视图返回的过程中,可能会出现一些异常,如本提示信息所示。 该提示信息中,circulary view path的意思是视图返回的路径出现了一个循环,即返回视图的路径和当前处理器(handler)的路径是相同的。由于这种循环,导致程序无法正确执行,最终抛出了异常。提示信息还指出,这个问题可能源于未指定视图名(view name)生成的默认视图名称。 解决这个问题的方法是检查视图解析器(view resolver)的设置。在Java Web开发中,视图解析器是负责将视图名称转换为具体的视图对象的组件。检查视图解析器的设置是否正确,确保它能够正确地解析出视图名称,以正确的方式返回视图。如果视图解析器设置正确,但问题依然存在,就需要查看视图(view)的生成和返回过程,找出循环路径并解决它。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucky me.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值