我有一个在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
}
答案 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;大小,所以我删除它然后它工作正常。感谢所有帮助的人。我希望我的答案将帮助其他人。