查了一个晚上也没有找出错误的地方,快要疯了。直接运行index.jsp页面也是404错误。但是访问其他项目的jsp页面是没问题的,到底错在哪里啊!
总结一句话:
说实话,我也看不懂这个错误是什么意思。我也没遇见过这种类型的错误。
你报错的英文:
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 /> 格式类似下图
属性说明:
docBase:Web项目的根目录
path:上下文,为空即可(严格来说应该是 "/" 才对的,但是既然不写也能识别,那么一般不写)
注意:企业中,上下文一般都是不配置的,至少我司是这样,按模块划分,所以上下文不配置。
2. 更改项目输出目录
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大法好。
你可以试一试去掉 <display-name>Struts2_test</display-name>这个,我一开始也是一直404,各种都不行,去掉这个立马就可以了
我用得是tomcat9.0,struts是2.5.13。最开始的时候我也是启动不了,后来把log4j-api.jar复制到lib下面就好了
我不知道我怎么弄了下,你试试全部退出,然后重新进,我的是struts.xml有问题,这样弄的,然后解决了。
真心求教哪里错了
tomcat是7.0的版本,struts2是2.3.24
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)
错误信息贴全一点,我看一下
都试过了,还是解决不了啊。百度上没有相似的例子,唉
把导致错误 caused by .... : 后面这一段复制下来,上百度看看.后面的错误信息看不到,其他人也没法帮你排.
另外, 如果jsp在web-inf下的话,不能直接访问,所以如果经过action有问题的话肯定也到不了jsp.
总之, 各种能用的方法都试试吧, 比如看看单词有没有错, 各种配置是否正确