[英]Spring Boot application works as standalone but class not found when deployed in Tomcat
[英]Spring mvc webapp works in eclipse but generates an exception when deployed in standalone tomcat
如標題中所述,我的應用程序使用SpringMVC和apache Tiles3。當在eclipse IDE中的服務器中運行時,它運行良好,但是當我導出war文件並將其部署在獨立的tomcat實例中時,它會部署Ok,但是當我訪問它時我有以下例外。 (請注意,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文件中
在其中一個答案中,有人指出,如果項目位置包含空間並且將碼頭與apache tile和spring的視圖解析器結合使用,那么這可能不是問題,這不是我的情況。 但是,為了消除任何疑問,我認為我應該嘗試一下。 現在我想知道應該在哪里將項目位置更改為沒有空間的路徑。 任何幫助都是可觀的。
我究竟做錯了什么? 先感謝您。
我無法確認是否是由項目位置路徑中的空格引起的,但是從Apache Tiles 3.0.3升級到3.0.5可以解決我的問題。
也許可以幫助某人面對同樣的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.