问答详情
源自:2-2 Struts2 案例代码实现

一直404错误,真心求教啊

http://img2.mukewang.com/59d3bcf00001c03908590460.jpg

http://img3.mukewang.com/59d3bcf1000147cd12720460.jpg

http://img.mukewang.com/59d3bcf10001208108190460.jpg

http://img1.mukewang.com/59d3bcf20001fd8e12220460.jpg

查了一个晚上也没有找出错误的地方,快要疯了。直接运行index.jsp页面也是404错误。但是访问其他项目的jsp页面是没问题的,到底错在哪里啊!

提问者:慕无忌5903725 2017-10-04 00:39

个回答

  • Lis丶
    2017-10-06 12:21:26
    已采纳

    总结一句话:

        说实话,我也看不懂这个错误是什么意思。我也没遇见过这种类型的错误。

    你报错的英文:

        Failed to process either the global, per-host or context-specific context.xml file therefore the [/manager] Context cannot be started.

    翻译过来大概是:

        无法处理global节点,host节点、context节点,因此容器无法启动。

    说说解决方案吧:

        Plan A :重新下载个Tomcat试试。

        Plan B :按照我下面说的重新搭建一个环境。

            0. 创建一个JavaProject(普通java项目),不是Dynamic Web Project(Web动态工程),然后建立下面文件结构:

            —— src

                    |—— com.imooc.action

                    |—— struts.xml

            —— webapp

                    |—— WEB-INF

                            |—— classes

                            |—— lib

                            |——web.xml

                    |——index.jsp

            1. 打开 Tomcat根目录/conf/server.xml 搜索 <Host name="localhost" 这个标签下面有一个Value标签,在它下面配置一个<Context /> 格式类似下图

        http://img2.mukewang.com/59d6fa140001b6a306290042.jpg

        属性说明:

            docBase:Web项目的根目录

            path:上下文,为空即可(严格来说应该是 "/" 才对的,但是既然不写也能识别,那么一般不写)

                注意:企业中,上下文一般都是不配置的,至少我司是这样,按模块划分,所以上下文不配置。

            2. 更改项目输出目录

                http://img3.mukewang.com/59d701d400017b9208430527.jpg

            3. 把你之前的配置复制过来,web.xml,struts.xml,action等等,启动Tomcat。

                1>运行CMD

                2>进入Tomcat根目录/bin

                3>输入startup.bat

                注意:不要直接在Tomcat上RunAS,采用最原始的方式启动即可。

    访问URL:localhost:8080

    能够正常访问:说明代码没有什么问题,那应该就是Eclipse的Tomcat的配置有问题,或者你把什么东西删了,那么重装Eclipse和Tomcat吧。

    不能访问(404):重装Eclipse和Tomcat。

    =============================分割线===============================

    以上纯手打,难得午休的时间都贡献给你了。好好珍惜,同时希望能够帮你解决到问题。


    最后,我要高举IDEA大旗:IDEA大法好。



  • 慕侠3318131
    2018-07-20 14:42:40

    你可以试一试去掉 <display-name>Struts2_test</display-name>这个,我一开始也是一直404,各种都不行,去掉这个立马就可以了

  • 阿双otw
    2017-10-23 19:49:42

    我用得是tomcat9.0,struts是2.5.13。最开始的时候我也是启动不了,后来把log4j-api.jar复制到lib下面就好了

  • qq_一个人的灵魂_0
    2017-10-21 22:24:14

    我不知道我怎么弄了下,你试试全部退出,然后重新进,我的是struts.xml有问题,这样弄的,然后解决了。

  • 慕无忌5903725
    2017-10-05 17:43:21

    http://img3.mukewang.com/59d5fdd30001a70808190460.jpghttp://img1.mukewang.com/59d5fe2d000177e108190460.jpg

    真心求教哪里错了

    http://img3.mukewang.com/59d5fe720001c82009180460.jpg

    tomcat是7.0的版本,struts2是2.3.24

  • 慕无忌5903725
    2017-10-05 17:37:30

    Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/manager] Context cannot be started.

    at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:158)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    ... 14 more


    十月 05, 2017 5:35:46 下午 org.apache.catalina.startup.HostConfig deployDirectory

    SEVERE: Error deploying web application directory D:\软件\java Web\apache-tomcat-7.0.53\webapps\manager

    java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [/manager]

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)

    at org.apache.catalina.core.ContainerBase.access$000(ContainerBase.java:133)

    at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:156)

    at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:145)

    at java.security.AccessController.doPrivileged(Native Method)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)

    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1229)

    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

    at java.lang.Thread.run(Thread.java:748)


  • Lis丶
    2017-10-05 12:47:29

    错误信息贴全一点,我看一下

  • 慕无忌5903725
    2017-10-05 10:50:32

    都试过了,还是解决不了啊。百度上没有相似的例子,唉

  • 慕移动0509896
    2017-10-04 13:32:32

    把导致错误  caused by .... : 后面这一段复制下来,上百度看看.后面的错误信息看不到,其他人也没法帮你排.

    另外, 如果jsp在web-inf下的话,不能直接访问,所以如果经过action有问题的话肯定也到不了jsp. 

    总之, 各种能用的方法都试试吧, 比如看看单词有没有错, 各种配置是否正确