【问题标题】:struts2 web application not found未找到 struts2 Web 应用程序
【发布时间】:2012-10-24 06:06:00
【问题描述】:

我已经创建了一个 struts 2 应用程序,并通过创建一个 war 文件将其部署在 tomcat 中。文件结构没有问题,如下是部署后在tomcat下的显示方式。

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

但是当我尝试访问该网站时,它给出了以下错误,

HTTP 状态 404 请求的资源 (/LoginApplication/User/Login) 不可用。

但是我发现当 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>

【问题讨论】:

  • 您是否将 Struts jar 放入 tomcat 中。有时如果 jar 被加载两次,它会抛出这个错误
  • 我没有把jar放到tomcat里面
  • 没有什么说缺少什么。请显示其余的异常。如果没有进一步的信息,我猜你要么缺少一个库,要么在类路径上有两次 S2 库/库。

标签: java tomcat struts2


【解决方案1】:

该错误表明您在使用 struts.xml 文件时遇到了问题。请在此处发布。还使用 Maven 来管理依赖项。那时您将永远不必为文件夹而烦恼。

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

  • commons-logging-1.1.jar
  • freemarker-2.3.8.jar
  • ognl-2.6.11.jar
  • struts2-core-2.0.6.jar
  • xwork-2.0.1.jar

【讨论】:

  • @HarshanaD 请验证库和版本。添加在我的答案中
  • @HarshanaD 选择 maven。或者最好的选择是下载 struts-blank.war 并使用所有的库。只是版本更改导致错误。
【解决方案2】:

请求操作登录的命名空间是用户。 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>

注意包名和命名空间是一样的

【讨论】:

  • 是的,我正在使用命名空间访问应用程序。这是我没有放置命名空间的帖子中的错字
猜你喜欢
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 2013-09-07
  • 1970-01-01
  • 2014-10-15
  • 2020-01-10
相关资源
最近更新 更多