2012-10-24 71 views
1

我创建了一个struts 2应用程序,并通过创建一个war文件将它部署在tomcat中。下面的文件结构没有任何问题,它是在部署后在tomcat下显示的。未找到struts2 web应用程序

css 
META-INF 
User 
    pages 
    login.jsp 
    customer_list.jsp 
WEB-INF 
    classes 
     struts.xml 
    lib 
    web.xml 

但是当我尝试访问该网站,它提供了下面的错误,

HTTP状态404所请求的资源(/ LoginApplication /用户/登录)不可用。

但是我发现当tomcat启动时它给出了以下例外。但声称缺少的jar文件是正确的。

Unable to load configuration. - bean - jar:file:/C:/tomcat6/webapps/LoginApplication/WEB-INF/lib/struts2-core-2.3.1.2.jar!/struts-default.xml:54:89 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:449) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) 
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) 

下面是struts.xml的文件,

<struts> 

    <constant name="struts.devMode" value="true" /> 

    <package name="user" namespace="/User" extends="struts-default"> 
     <action name="Login"> 
      <result>pages/login.jsp</result> 
     </action> 
     <action name="Welcome" class="loginapplication.action.UserLoginAction"> 
      <result type="redirect" name="SUCCESS">Customers</result> 
      <result name="input">pages/login.jsp</result> 
     </action> 
     <action name="Customers" class="loginapplication.action.ViewCustomerAction"> 
      <result name="SUCCESS">pages/customer_list.jsp</result> 
     </action> 
    </package> 

</struts> 
+1

你有没有放在罐子Struts的Tomcat内。有时候,如果罐子被加载两次,它会抛出这个错误 – Murugesh

+0

我还没有把罐子放在tomcat内 – FrankD

+0

什么都没说,缺少任何东西。请显示其余的例外情况。如果没有更多的信息,我猜你会错过一个库,或者在类路径上有两次S2库/库。 –

回答

1

的错误表明您已经得到了与struts.xml的文件的问题。请在这里发布。还可以使用Maven来管理依赖关系。那么你永远不必担心文件夹。

请验证您的库中的库和版本。

  • 共享记录-1.1.jar
  • 的freemarker-2.3.8.jar
  • OGNL-2.6.11.jar
  • Struts2的核心 - 2.0.6.jar
  • xwork- 2.0.1.jar
+0

我已经发布了struts.xml – FrankD

+0

@HarshanaD请验证库和版本。在我的回答中加入 –

+0

@HarshanaD去找maven。或者最好的选择是下载struts-blank.war并使用所有库。只是版本的变化导致了错误。 –

0

请求的操作的命名空间登录名是User。该URL应该像下面

http://localhost:8080/MyApp/User/Login 

配置XML

<package name="User" namespace="/User" extends="struts-default"> 
     <action name="Login"> 
      <result>pages/login.jsp</result> 
     </action> 
    </package> 

注意包名称和命名空间是相同的

+0

是的,我正在使用命名空间访问应用程序。这是我没有放置命名空间的帖子中的一个错字 – FrankD