如标题中所述,我的应用程序使用的是 SpringMVC 和 apache Tiles 3。它在 eclipse IDE 的服务器中运行时运行良好,但当我导出 war 文件并将其部署在独立的 tomcat 实例中时,它部署正常,但是当我访问它我有以下异常。 (请注意,eclipse 中的服务器与我部署 webapp 的服务器相同)。
> exception
>
> javax.servlet.ServletException: Could not resolve view with name
> 'login' in servlet with name 'dispatcher'
> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
> org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012)
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
更新:非常感谢@Fredlo2010。我已经看到你提到的链接
这是我的 web.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>Project</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
并且jSTL依赖已经在pom.xml文件中
在其中一个答案中,有人指出如果项目位置包含空间并且如果 Jetty 与 apache tiles 和 spring 的 View 解析器结合使用(这不是我的情况),则项目位置可能会出现问题。然而,为了消除任何疑问,我认为我应该试一试。现在我想知道我应该在哪里将我的项目位置更改为没有空格的路径。任何帮助都将不胜感激。
我做错了什么?提前谢谢你。
最佳答案
我无法确认它是否是由项目位置路径中的空间引起的,但是从 Apache Tiles 3.0.3 升级到 3.0.5 解决了我的问题。
也许这可以帮助面临同样问题的人
关于java - spring mvc webapp 在eclipse 中运行但在独立tomcat 中部署时生成异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842958/