我在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”上的内容进行了一些更改,并在重新部署时获取这些更改。映射不正常,我想知道如何解决这个问题。
答案 0 :(得分:0)
经过一些实验,我发现了这一点。事实证明,Glassfish允许我部署我的Struts2应用程序而不会抛出任何错误,即使Struts2项目库未正确添加到我的项目中。我将部署容器切换到Tomcat,然后我开始收到错误,表明我缺少配置。然后,我可以添加缺少的配置项并重新部署应用程序。它现在按预期工作。
感谢您的意见/建议。