tomca加载项目初始化出现问题

流风回雪pj 发布于 2017/06/16 17:06
阅读 294
收藏 0

自己创建Maven项目,用tomcat启动时总会报错:

报错信息:

信息: Deploying web application directory D:\Program Files\apache-tomcat-8.0.41\webapps\ROOT
六月 16, 2017 4:52:40 下午 org.apache.catalina.core.ContainerBase addChildInternal
严重: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	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:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@a99b529]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5099)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 10 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@56ec0c32]
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:135)
	at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 13 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
	at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
	... 16 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
	at java.util.zip.ZipFile.read(Native Method)
	at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
	at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)
	at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
	at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
	at sun.misc.IOUtils.readFully(IOUtils.java:65)
	at java.util.jar.JarFile.getBytes(JarFile.java:425)
	at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
	at java.util.jar.JarFile.getManifest(JarFile.java:180)
	at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)
	... 17 more

个人觉得这个报错是因为tomcat启动的时候,在初始化tomcat容器时是从webapps目录下加载项目到容器中的,但是我的项目是在wtpwebapps目录下,所以我觉得是容器启动时目录加载错误。

自己的解决方法:

项目右键 ---》properties ---》web project settings 将context root由项目名称改为 “/

同时将tomcat路径也改为 “/” ,这样启动就不会报错了。

但是我有点不明白为啥会这样,而且有什么解决方法没有,因为很多down下来的项目不这样改也可以正常启动,就是我自己建的项目有问题

加载中
0
神恰恰
神恰恰

我一般都是先用Maven建好webapp后,先改下jdk版本,然后编译版本和Project Facts里面的JDK版本改成一致,在到项目文件夹下修改xxx.xxxx.xxx.project.facet.core.xml改成2.5,在到Project Facts把servlet规范改成2.5,然后顺便把Runtimes选tomcat,加载项目,启动tomcat都没问题,项目也很正常啊。

流风回雪pj
流风回雪pj
但是这也没啥问题啊
流风回雪pj
流风回雪pj
我创建完项目一般操作是:先设置工程环境(编码、maven、jdk)、再创建maven项目、添加tomcat
0
luokery
luokery

你用IDE启动的tomcat还是, 手动启动tomcat的?

流风回雪pj
流风回雪pj
eclipse启动
返回顶部
顶部