首页 > 解决方案 > java.lang.NullPointerException:在 org.apache.tiles.access.TilesAccess.getContainer 处为空(TilesAccess.java:124)~[tiles-api-3.0.8.jar:3.0.8]

问题描述

我正在尝试将 struts 从2.3迁移到2.5.20。作为这项任务的一部分,我必须将瓷砖 2迁移到瓷砖 3

我可以看到我的 tomcat 正在启动并且我可以访问我的端点(其余端点)

我添加了以下插件 struts2-tiles-plugin-2.5.20.jar

还为 Tiles 3 添加了以下罐子:

tiles-api-3.0.8.jar
tiles-autotag-core-runtime-1.2.jar
tiles-compat-3.0.8.jar
tiles-core-3.0.8.jar
tiles-el-3.0.8.jar
tiles-extras-3.0.8.jar
tiles-freemarker-3.0.8.jar
tiles-jsp-3.0.8.jar
tiles-mvel-3.0.8.jar
tiles-ognl-3.0.8.jar
tiles-request-api-1.0.7.jar
tiles-request-jsp-1.0.7.jar
tiles-request-mustache-1.0.7.jar
tiles-request-servlet-1.0.7.jar
tiles-request-servlet-wildcard-1.0.7.jar
tiles-servlet-3.0.8.jar
tiles-template-3.0.8.jar
tiles-velocity-3.0.8.jar

将 XML 中的 DTD 更改为:

<!DOCTYPE tiles-definitions PUBLIC 
        "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
        "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 

我收到以下异常:

15:32:03.820 [http-nio-8443-exec-3] ERROR org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - Exception occurred during processing request: null
java.lang.NullPointerException: null
    at org.apache.tiles.access.TilesAccess.getContainer(TilesAccess.java:124) ~[tiles-api-3.0.8.jar:3.0.8]
    at org.apache.tiles.access.TilesAccess.getContainer(TilesAccess.java:107) ~[tiles-api-3.0.8.jar:3.0.8]
    at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:126) ~[struts2-tiles-plugin-2.5.20.jar:2.5.20]
    at org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:206) ~[struts2-core-2.5.20.jar:2.5.20]
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375) ~[struts2-core-2.5.20.jar:2.5.20]
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:279) ~[struts2-core-2.5.20.jar:2.5.20]
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142) ~[struts2-core-2.5.20.jar:2.5.20]
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) ~[struts2-core-2.5.20.jar:2.5.20]
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) ~[struts2-core-2.5.20.jar:2.5.20]
    at org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48) ~[struts2-core-2.5.20.jar:2.5.20]
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574) [struts2-core-2.5.20.jar:2.5.20]
    at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) [struts2-core-2.5.20.jar:2.5.20]
    at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141) [struts2-core-2.5.20.jar:2.5.20]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.88]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.88]
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:399) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.securechannel.ChannelProcessingFilter.doFilterHttp(ChannelProcessingFilter.java:116) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:188) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) [spring-security-core-2.0.7.RELEASE.jar:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.88]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.88]
    at 

注意:我使用apache-tomcat-7.0.88进行部署。

尝试添加以下罐子,但没有成功:

el-api-6.0.20.jar
jasper-el-6.0.20.jar 
javax.servlet-api-3.0.1.jar
javax.servlet.jsp-api-2.3.1.jar
jstl-1.2.jar

标签: springstruts2tiles-3

解决方案


推荐阅读