1

我目前正在学习 Apache Struts 网站上的教程。

目前,每当我在表单上按提交,或者当我单击布鲁斯飞利浦超链接时,我都会得到一个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)
        ....

我也不太确定问题是什么,我相信我已经包含了教程所述的所有内容。我已经尝试在 my 中包含依赖项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>

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

4

5 回答 5

1

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!

于 2013-02-28T15:49:55.167 回答
0

我相信你需要的依赖

  <dependency>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-core</artifactId>
     <version>${struts2.version}</version>
  </dependency>
  <dependency>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-tiles-plugin</artifactId>
     <version>${struts2.version}</version>
  </dependency>

还有其他依赖项,但这些对于 Struts2 Tiles 应用程序是必需的。

于 2013-02-28T21:37:36.117 回答
0

删除ognl作为依赖项,因为这已经是struts 2.3.8其自身的临时依赖项,并确保 Eclipse 是否正确部署了您的应用程序,这有很多问题。

于 2013-03-01T06:17:58.157 回答
0

发现问题...原来我的服务器版本太旧,无法处理 struts 2。我以前使用 Geronimo 版本 2.0.2,现在它在 GlassFish 3.1.2 上运行良好。

于 2013-03-01T15:07:17.227 回答
0

将这些 Jar 组合用于 Struts 2 应用程序

在此处输入图像描述

于 2014-06-20T07:41:15.970 回答