这是我的设置:
规格:
我在Eclipse中设置了一个名为“Struts2Test”的动态Web项目,其结构如下。注意:我只突出显示与此问题相关的文件夹和文件。
Struts2Test (project name)
- [Java Resources]
- [src]
- [com.struts2action] (package)
- HelloWorldAction.java
- [Libraries]
- [Struts2] (user defined library)
- antlr-2.7.2.jar
- bsf-2.3.0.jar
- commons-beanutils-1.8.0.jar
- commons-chain-1.2.jar
- commons-digester-1.8.jar
- commons-fileupload-1.1.1.jar
- commons-io-1.1.jar
- commons-logging-1.0.4.jar
- commons-validator-1.3.1.jar
- jstl-1.0.2.jar
- oro-2.0.8.jar
- standard-1.0.6.jar
- struts-core-1.3.10.jar
- struts-el-1.3.10.jar
- struts-extras-1.3.10.jar
- struts-faces-1.3.10.jar
- struts-mailreader-dao-1.3.10.jar
- struts-scripting-1.3.10.jar
- struts-taglib-1.3.10.jar
- struts-tiles-1.3.10.jar
- [Web Content]
- [WEB-INF]
- [classes]
- struts.xml
- web.xml
- error.jsp
- index.jsp
- success.jsp
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Struts2Test</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
struts.xml中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="helloworld" extends="struts-default">
<!-- URL: hello -->
<action name="hello"
class="com.struts2action.HelloWorldAction"
method="execute">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
<!-- more actions can be listed here -->
</package>
<!-- more packages can be listed here -->
</struts>
HelloWorldAction.java
package com.struts2action;
public class HelloWorldAction {
public String execute() {
System.out.println("HelloWorldAction - called");
return "success";
}
}
我运行并编译程序。我打电话给以下人员:
http://localhost:8085/Struts2Test/hello.action
我一直收到以下错误:
HTTP状态404 - /Struts2Test/hello.action
输入状态报告 消息/Struts2Test/hello.action description请求的资源不可用。
Apache Tomcat / 7.0.55
有人可以告诉我配置的问题是什么吗?
答案 0 :(得分:2)
我通过删除用户定义的库解决了我的问题,并将jar直接添加到WEB-INF / classes文件夹中。请注意,图片上的罐子与我的问题中列出的罐子不同。我只是开始了解Struts2,所以我甚至不确定我是否需要那些罐子。无论哪种方式,感谢大家的帮助和反馈。
答案 1 :(得分:1)
我在Apache Tomcat 6.0上尝试了相同的代码,它在那里运行良好。
在Tomcat7上,您可能需要使用Struts2准备和执行过滤器。
尝试使用以下内容替换过滤器代码,因为现在不推荐使用过滤器调度程序。
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
还有一个问题,你能在控制台上看到你的System out语句吗?
答案 2 :(得分:1)
尝试将jar文件保存在/ WEB-INF / lib
中