有没有出现过这种问题
ContainerBase.addChild: start:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/struts]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1101)
at org.apache.catalina.startup.HostConfig
D
e
p
l
o
y
D
i
r
e
c
t
o
r
y
.
r
u
n
(
H
o
s
t
C
o
n
f
i
g
.
j
a
v
a
:
1786
)
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
E
x
e
c
u
t
o
r
s
DeployDirectory.run(HostConfig.java:1786) at java.util.concurrent.Executors
DeployDirectory.run(HostConfig.java:1786)atjava.util.concurrent.ExecutorsRunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access
1400
(
Z
i
p
F
i
l
e
.
j
a
v
a
:
60
)
a
t
j
a
v
a
.
u
t
i
l
.
z
i
p
.
Z
i
p
F
i
l
e
1400(ZipFile.java:60) at java.util.zip.ZipFile
1400(ZipFile.java:60)atjava.util.zip.ZipFileZipFileInputStream.read(ZipFile.java:734)
at java.util.zip.ZipFile
Z
i
p
F
i
l
e
I
n
f
l
a
t
e
r
I
n
p
u
t
S
t
r
e
a
m
.
f
i
l
l
(
Z
i
p
F
i
l
e
.
j
a
v
a
:
434
)
a
t
j
a
v
a
.
u
t
i
l
.
z
i
p
.
I
n
f
l
a
t
e
r
I
n
p
u
t
S
t
r
e
a
m
.
r
e
a
d
(
I
n
f
l
a
t
e
r
I
n
p
u
t
S
t
r
e
a
m
.
j
a
v
a
:
158
)
a
t
j
a
v
a
.
i
o
.
B
u
f
f
e
r
e
d
I
n
p
u
t
S
t
r
e
a
m
.
f
i
l
l
(
B
u
f
f
e
r
e
d
I
n
p
u
t
S
t
r
e
a
m
.
j
a
v
a
:
246
)
a
t
j
a
v
a
.
i
o
.
B
u
f
f
e
r
e
d
I
n
p
u
t
S
t
r
e
a
m
.
r
e
a
d
(
B
u
f
f
e
r
e
d
I
n
p
u
t
S
t
r
e
a
m
.
j
a
v
a
:
265
)
a
t
j
a
v
a
.
i
o
.
D
a
t
a
I
n
p
u
t
S
t
r
e
a
m
.
r
e
a
d
I
n
t
(
D
a
t
a
I
n
p
u
t
S
t
r
e
a
m
.
j
a
v
a
:
387
)
a
t
o
r
g
.
a
p
a
c
h
e
.
t
o
m
c
a
t
.
u
t
i
l
.
b
c
e
l
.
c
l
a
s
s
f
i
l
e
.
C
l
a
s
s
P
a
r
s
e
r
.
r
e
a
d
I
D
(
C
l
a
s
s
P
a
r
s
e
r
.
j
a
v
a
:
199
)
a
t
o
r
g
.
a
p
a
c
h
e
.
t
o
m
c
a
t
.
u
t
i
l
.
b
c
e
l
.
c
l
a
s
s
f
i
l
e
.
C
l
a
s
s
P
a
r
s
e
r
.
p
a
r
s
e
(
C
l
a
s
s
P
a
r
s
e
r
.
j
a
v
a
:
78
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
p
r
o
c
e
s
s
A
n
n
o
t
a
t
i
o
n
s
S
t
r
e
a
m
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
2119
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
p
r
o
c
e
s
s
A
n
n
o
t
a
t
i
o
n
s
J
a
r
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
1981
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
p
r
o
c
e
s
s
A
n
n
o
t
a
t
i
o
n
s
U
r
l
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
1942
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
p
r
o
c
e
s
s
A
n
n
o
t
a
t
i
o
n
s
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
1927
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
p
r
o
c
e
s
s
C
l
a
s
s
e
s
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
1406
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
w
e
b
C
o
n
f
i
g
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
1278
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
c
o
n
f
i
g
u
r
e
S
t
a
r
t
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
881
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
C
o
n
t
e
x
t
C
o
n
f
i
g
.
l
i
f
e
c
y
c
l
e
E
v
e
n
t
(
C
o
n
t
e
x
t
C
o
n
f
i
g
.
j
a
v
a
:
388
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
u
t
i
l
.
L
i
f
e
c
y
c
l
e
S
u
p
p
o
r
t
.
f
i
r
e
L
i
f
e
c
y
c
l
e
E
v
e
n
t
(
L
i
f
e
c
y
c
l
e
S
u
p
p
o
r
t
.
j
a
v
a
:
117
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
u
t
i
l
.
L
i
f
e
c
y
c
l
e
B
a
s
e
.
f
i
r
e
L
i
f
e
c
y
c
l
e
E
v
e
n
t
(
L
i
f
e
c
y
c
l
e
B
a
s
e
.
j
a
v
a
:
90
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
c
o
r
e
.
S
t
a
n
d
a
r
d
C
o
n
t
e
x
t
.
s
t
a
r
t
I
n
t
e
r
n
a
l
(
S
t
a
n
d
a
r
d
C
o
n
t
e
x
t
.
j
a
v
a
:
5590
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
u
t
i
l
.
L
i
f
e
c
y
c
l
e
B
a
s
e
.
s
t
a
r
t
(
L
i
f
e
c
y
c
l
e
B
a
s
e
.
j
a
v
a
:
145
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
c
o
r
e
.
C
o
n
t
a
i
n
e
r
B
a
s
e
.
a
d
d
C
h
i
l
d
I
n
t
e
r
n
a
l
(
C
o
n
t
a
i
n
e
r
B
a
s
e
.
j
a
v
a
:
1018
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
c
o
r
e
.
C
o
n
t
a
i
n
e
r
B
a
s
e
.
a
d
d
C
h
i
l
d
(
C
o
n
t
a
i
n
e
r
B
a
s
e
.
j
a
v
a
:
994
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
c
o
r
e
.
S
t
a
n
d
a
r
d
H
o
s
t
.
a
d
d
C
h
i
l
d
(
S
t
a
n
d
a
r
d
H
o
s
t
.
j
a
v
a
:
652
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
H
o
s
t
C
o
n
f
i
g
.
d
e
p
l
o
y
W
A
R
(
H
o
s
t
C
o
n
f
i
g
.
j
a
v
a
:
1127
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
s
t
a
r
t
u
p
.
H
o
s
t
C
o
n
f
i
g
ZipFileInflaterInputStream.fill(ZipFile.java:434) at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read(BufferedInputStream.java:265) at java.io.DataInputStream.readInt(DataInputStream.java:387) at org.apache.tomcat.util.bcel.classfile.ClassParser.readID(ClassParser.java:199) at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:78) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2119) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1981) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1942) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1927) at org.apache.catalina.startup.ContextConfig.processClasses(ContextConfig.java:1406) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1278) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5590) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1018) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:994) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1127) at org.apache.catalina.startup.HostConfig
ZipFileInflaterInputStream.fill(ZipFile.java:434)atjava.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)atjava.io.BufferedInputStream.fill(BufferedInputStream.java:246)atjava.io.BufferedInputStream.read(BufferedInputStream.java:265)atjava.io.DataInputStream.readInt(DataInputStream.java:387)atorg.apache.tomcat.util.bcel.classfile.ClassParser.readID(ClassParser.java:199)atorg.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:78)atorg.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2119)atorg.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1981)atorg.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1942)atorg.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1927)atorg.apache.catalina.startup.ContextConfig.processClasses(ContextConfig.java:1406)atorg.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1278)atorg.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)atorg.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)atorg.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)atorg.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5590)atorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1018)atorg.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:994)atorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)atorg.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1127)atorg.apache.catalina.startup.HostConfigDeployWar.run(HostConfig.java:2021)
at java.util.concurrent.Executors
R
u
n
n
a
b
l
e
A
d
a
p
t
e
r
.
c
a
l
l
(
E
x
e
c
u
t
o
r
s
.
j
a
v
a
:
511
)
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
F
u
t
u
r
e
T
a
s
k
.
r
u
n
(
F
u
t
u
r
e
T
a
s
k
.
j
a
v
a
:
266
)
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
.
r
u
n
W
o
r
k
e
r
(
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
.
j
a
v
a
:
1149
)
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor
RunnableAdapter.call(Executors.java:511)atjava.util.concurrent.FutureTask.run(FutureTask.java:266)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
可以试试如下的解决方法:
1、修改启动类,并重写初始化方法
我们平常用main方法启动的方式,都有一个App的启动类,代码如下:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:
/**
-
修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(Application.class);
}
}
2、在pom里面加上scope属性provided,避免jar包冲突
3、移除嵌入式tomcat插件
更多详情见 https://blog.youkuaiyun.com/javahighness/article/details/52515226