【发布时间】:2015-01-27 21:42:00
【问题描述】:
我有一个在 Glassfish 4 容器上运行的 Struts2 应用程序。该应用程序包含一个动作类SampleAction
package com.mysample.action;
public class SampleAction {
public String execute() {
return "success";
}
}
struts XML 很简单,包括:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="sayHello" class="com.mysample.action.SampleAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
此项目的 web.xml 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
当我转到http://localhost:8080/sample_war_exploded/sayHello.action 我收到 404 错误。未找到
当我转到:http://localhost:8080/sample_war_exploded/success.jsp -- 我得到一个成功页面
为什么我的映射不能正常工作?我希望通过转到 */sayHello.action,我会得到成功页面。
我尝试过重新部署工件,停止+重新启动服务器等。我什至对“success.jsp”上的内容进行了一些更改,这些更改在我重新部署时会被拾取。映射无法正常工作,我想知道如何解决此问题。
【问题讨论】:
-
是不是把配置文件放错了?
-
您在应用程序启动时看到任何错误吗?