1

由于最近在 Struts 中发现了安全漏洞,我正在将我的 Web 应用程序升级到 Struts 2.3.15.1。该应用程序已启动并正在运行,但我得到:

Caused by: java.lang.NoSuchMethodError: com/opensymphony/xwork2/util/logging/Logger.debug(Ljava/lang/String;[Ljava/lang/Object;)V
at org.apache.struts2.components.UIBean.populateComponentHtmlId(UIBean.java:992)
at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:801)
at org.apache.struts2.components.UIBean.end(UIBean.java:523)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at com.ibm._jsp._Messages._jspx_meth_s_actionmessage_0(_Messages.java:193)
at com.ibm._jsp._Messages._jspx_meth_s_if_1(_Messages.java:226)
at com.ibm._jsp._Messages._jspService(_Messages.java:98)

我在 EAR 内的 web-inf/lib 文件夹中确实有 xwork-2.1.2.jar 和其他所需的 jar 文件。当我在addActionMessage()通过 AJAX 调用执行保存/删除后使用该方法设置成功/错误消息时,此异常会显示在 UI 中。

4

1 回答 1

0

您有版本不匹配错误,混合来自不同版本框架的库会导致代码中出现意想不到的不兼容性。确保从一个发行版或版本的 Struts 复制库。如果您使用的是 maven,则更新 Struts2 依赖项的版本以对应您使用的版本,或者使用struts2-core工件来获取所有必需的依赖项。

于 2013-11-15T13:13:19.843 回答