2017-03-09 93 views
0

我想为我的应用程序禁用Spring MVC视图分辨率。禁用仅适用于REST的Spring MVC视图分辨率

我的应用程序只使用Thymeleaf作为邮件模板,使用Spring MVC作为REST API。它不提供Thymleaf页面。

我在application.properties配置以下属性:

spring.thymeleaf.enabled=false 

但我仍然得到错误,如:

20:28:51.851 [http-nio-8080-exec-10] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet dispatcherServlet threw exception 
javax.servlet.ServletException: Circular view path [error]: would dispatch back to the current handler URL [/error] 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:205) 
     at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:145) 
     at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) 
     at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257) 
     at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037) 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980) 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 
     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:726) 
     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) 
     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:394) 
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311) 
     at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:395) 
     at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:254) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) 
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) 
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
     at java.lang.Thread.run(Thread.java:745) 

如何使用Thymeleaf同时禁用视图分辨率为Spring MVC的?

编辑:其实我服务的唯一看法是SPA的index.html作为如下:

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("forward:/index.html"); 
} 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/**")// 
      .addResourceLocations("classpath:/")// 
      .setCachePeriod(ONE_YEAR); 
    registry.addResourceHandler("/")// 
      .addResourceLocations("classpath:/index.html")// 
      .setCachePeriod(0); 
} 

回答

1

我觉得这里的问题,当春天遇到错误,则转发“用户”来/错误页面。尝试在属性中添加以下内容。

spring.resources.add-mappings=false

+0

感谢您的回复。我认为应用程序将不再提供静态资源(请参阅我的编辑)... – balteo

相关问题