Struts 1.3在Windows和Linux上的不同行为

时间:2016-08-09 15:35:41

标签: linux tomcat struts-1

我有一个在Apache Tomcat-8.0.3上运行的struts 1.3应用程序。目前它托管在Windows服务器上,我们计划在linux centos 6上迁移它。该项目在Windows服务器上正常运行。当相同的war文件是在Linux上部署它会出现以下错误:

HTTP Status 500 - No action instance for path /home could be created

我的index.jsp(欢迎页面)由以下内容组成:

<%jsp:forward="home.do"%>

我的home.do重定向到HomeAction。 编辑:     // Struts-config部分

<form-beans>
    <form-bean name="home" type="com.compname.appname.form.HomeForm"/>
</form-beans>

<global-forwards>
    <forward name="welcome"  path="/home.do"/>
</global-forwards>

<action-mappings>       
    <action path="/home" type="com.compname.appname.action.HomeAction" name="home" scope="request" input="/" validate="false">
    <forward name="success" path="home.jsp.tld"/>           
    </action>        
</action-mappings>

//Action classes
public class HomeAction extends BaseAction {

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {        
    HomeForm frm = (HomeForm) form;
    HttpSession appSession = request.getSession();
    String SUCCESS = "success";
    //code here
    return mapping.findForward(SUCCESS);
    }

}

public class BaseAction extends org.apache.struts.action.Action {
//reusable variables and methods
}

2 个答案:

答案 0 :(得分:0)

linux中的文件系统与windows不同,请尝试:

<%jsp:forward="/home.do"%>

或者,请发布更多信息,例如struts.xml或可帮助查找问题的操作类。

答案 1 :(得分:0)

罪魁祸首是另一回事。与Java或Tomcat甚至Struts版本没有任何关系。为了获得屏幕大小我从java.awt包中使用了
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();。这在windows上运行良好但在linux中给出了异常。此外,我发现这不是我应该使用的方法来获得客户端屏幕尺寸&#39;大小,所以我删除它然后它工作正常。感谢所有帮助的人。我希望我的答案将帮助其他人。