我在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。任何人都可以告诉我这里有什么问题吗?
答案 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="/" />