2016-08-09 26 views
0

我在Apache Tomcat-8.0.3上运行了一个struts 1.3应用程序。目前它托管在Windows服务器上,我们计划在Linux上迁移它centos 6.该项目在Windows上正常运行server.When相同war文件部署在Linux上它提供了以下错误:Struts 1.3 Windows和Linux上的不同行为

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

我的index.jsp(欢迎页)由本:

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

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

<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

对于那些觉得它应该是HomeAction.do的人,我已经在我的struts-config文件中做了适当的映射,并且它已经在您使用的旧版Tomcat 8的windows – DontDiscloseMe

+0

上生效。您可以升级并尝试再次?最新的8.0.x是8.0.36。 –

+0

当它在Linux上的工作方式与Windows不同时,我怀疑文件名中存在一个案例问题:Linux对文件名称区分大小写,而Windows不区分大小写。 –

回答

0

文件系统是从窗户的不同,请尝试:

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

否则,请发布的详细信息,比如你的支柱.xml或可帮助查找问题的操作类。

+0

您的解决方案无法正常工作。我在上面的问题中添加了额外的信息 – DontDiscloseMe

0

那么罪魁祸首是另一回事。与Java或Tomcat甚至Struts版本没有任何关系。为了获得屏幕大小,我使用了java.awt包中的
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();。这在Windows上工作正常,但在linux中发出异常。此外,我发现这不是方法我应该用屏幕大小来看'客户'的大小,所以我把它删除了,然后它就可以正常工作了。感谢所有帮助的人。我希望我的回答能够帮助别人。

相关问题