从 Struts 2.5.33 迁移到 Struts 6.4.0 时,ActionContext.getContext() 返回 null 的问题

问题描述 投票:0回答:1

我正在从 Struts 2.5.33 迁移到 Struts 6.4.0。 按照 https://cwiki.apache.org/confluence/display/WW/Struts+2.5+to+6.0.0+migration 的指南进行操作后,应用程序无法显示主页,因为 NullPointerException,这是由于ActionContext.getContext() 在 Struts 代码中返回 null。

在JSP页面中打印出ActionContext.getContext()的值,迁移前不为null,迁移后为null。

我遵循了https://cwiki.apache.org/confluence/display/WW/Struts+2.5+to+6.0.0+migration的所有迁移步骤。

任何想法都非常感激。谢谢。

请参阅下面的 Stacktrace 日志

nullpointerexception struts2 migration actioncontext
1个回答
0
投票

上述错误的根本原因是

org.apache.tiles.definition.NoSuchDefinitionException: Cannot find definition named 'loginForm'
    at org.apache.tiles.impl.mgmt.CachingTilesContainer.render(CachingTilesContainer.java:123) ~[tiles-core-3.0.8.jar:3.0.8]

解决方案: 将以下内容添加到 web.xml 中

    <context-param>
    <param-name>org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG</param-name>
    <param-value>/WEB-INF/tiles.xml</param-value>
  </context-param> 

https://lists.apache.org/thread/zoysvnb52zk4kv5rg445r5bd8rkn7hto https://issues.apache.org/jira/browse/WW-5419

© www.soinside.com 2019 - 2024. All rights reserved.