我目前正在通过Apache Struts2网站上的the tutorial进行工作。

当前,每当我在表单上按Submit或单击Bruce Philips超链接时,都会得到一个NoSuchMethodError

javax.servlet.ServletException: Filter execution threw an exception
root cause

java.lang.NoSuchMethodError: ognl.SimpleNode.isEvalChain(Lognl/OgnlContext;)Z
    com.opensymphony.xwork2.ognl.OgnlUtil.isEvalExpression(OgnlUtil.java:224)
    com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:215)
    com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:187)
    com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:174)
    com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:152)
        ....


我也不太确定问题是什么,我相信我已经包括了本教程说明的所有内容。我已经尝试在pom.xml中包括依赖项,但这也没有区别。

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>Struts2PracticeSite</groupId>
  <artifactId>Struts2PracticeSite</artifactId>
    <packaging>war</packaging>
  <version>0.0.1</version>
    <build>
        <finalName>Struts2PracticeSite</finalName>
    </build>
    <dependencies>
    <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.3.8</version>
</dependency>

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.14</version>
</dependency>
</dependencies>


</project>


关于如何解决此问题的任何想法?

最佳答案

struts2.3.1.1允许ognl3.0.2.jar + ognl3.0.2-source.jar + ognl3.0.1
与此同时
。 struts2.3.1.2只能具有ognl3.0.4,但要删除其他版本

ognl3.0.4是必须的,并且可以是唯一的ognl jar!

关于java - 在Struts 2中使用提交表单时出现NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15138843/

10-10 16:35