为什么strut2-junit插件会抱怨约定插件?

时间:2015-10-07 23:25:51

标签: java maven java-ee junit struts2

我在Maven,Struts 2中有一个正在运行的项目。我正在尝试添加struts2-junit-plugin进行测试。

所以我添加了struts2-junit的插件。

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-junit-plugin</artifactId>
    <version>2.3.20</version>
</dependency>

运行后,我收到了这个错误:

java.lang.NoClassDefFoundError: javax/servlet/jsp/PageContext

然后我添加了jsp-api的插件。

<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>prototype</scope>
</dependency>

当我运行它时,我得到了一个不同的错误:

java.io.FileNotFoundException: class path resource [WEB-INF/content/] cannot be resolved to URL because it does not exist

我尝试对struts.xml进行以下更改:

<constant name="struts.convention.result.path" value="/src/main/webapp/WEB-INF"

但它也没有用。

当我从我的pom文件中删除struts2-convention-plugin时,它可以正常工作。

但我需要struts2-convention-plugin。任何人都可以告诉我这里有什么问题吗?

3 个答案:

答案 0 :(得分:1)

我在朋友的帮助下得到了解决方案,我没有使用这一行 struts.xml中的<constant name="struts.convention.result.path" value="/src/main/webapp/WEB-INF" ....

但我在WEB_INF/content/user-actions内创建了文件夹结构src/main/resources并且它有效。

答案 1 :(得分:0)

您使用了错误的版本和范围。替换为

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
</dependency>

并使用结果'path

的默认配置
<constant name="struts.convention.result.path" value="/WEB-INF/content" />

答案 2 :(得分:0)

我遇到了同样的问题,并通过在struts.xml中添加以下行来解决

<constant name="struts.convention.result.path" value="/" />