项目启动报错java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException

Maven项目启动报错java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException

Maven项目报错详情:

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/ssm]]

       at java.util.concurrent.FutureTask.report(FutureTask.java:122)

       at java.util.concurrent.FutureTask.get(FutureTask.java:192)

       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)

       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)

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

       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)

       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)

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

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

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

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

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

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/ssm]]

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

       ... 7 more

Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"

       at java.lang.ClassLoader.defineClass1(Native Method)

       at java.lang.ClassLoader.defineClass(ClassLoader.java:763)

       at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

       at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)

       at java.net.URLClassLoader.access$100(URLClassLoader.java:73)

       at java.net.URLClassLoader$1.run(URLClassLoader.java:368)

       at java.net.URLClassLoader$1.run(URLClassLoader.java:362)

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

       at java.net.URLClassLoader.findClass(URLClassLoader.java:361)

       at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1191)

       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1669)

       at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)

       at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:162)

       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5423)

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

       ... 7 more

七月 15, 2018 10:42:27 下午 org.apache.catalina.core.ContainerBase startInternal

严重: A child container failed during start

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]

       at java.util.concurrent.FutureTask.report(FutureTask.java:122)

       at java.util.concurrent.FutureTask.get(FutureTask.java:192)

       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)

       at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)

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

       at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)

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

       at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)

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

       at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)

       at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1238)

       at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:592)

       at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)

       at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)

       at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)

       at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)

       at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)

       at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)

       at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)

       at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)

       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)

       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)

       at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)

       at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)

       at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)

       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

       at java.lang.reflect.Method.invoke(Method.java:498)

       at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)

       at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)

       at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)

       at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

       at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]

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

       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)

       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)

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

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

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

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

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

Caused by: org.apache.catalina.LifecycleException: A child container failed during start

       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)

       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)

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

       ... 7 more

    问题出现原因:项目中引入jar包与Tomcat自带jar包冲突,所以需要将POM文件中的jar包引入做处理,将冲突jar包引用中加入<scope>provided</scope>,provided表明该包只在编译和测试的时候用,所以,当启动tomcat的时候,就不会冲突了。

    总结出会出现冲突的jar包如下:

  • servlet-api:

        <dependency>

            <groupId>javax.servlet</groupId>

            <artifactId>servlet-api</artifactId>

            <scope>provided</scope>

        </dependency>

  • jsp-api:

    <dependency>

        <groupId>javax.servlet.jsp</groupId>

        <artifactId>jsp-api</artifactId>

        <scope>provided</scope>

    </dependency>

  • geronimo-servlet_3.0_spec:

    <dependency>

           <groupId>org.apache.geronimo.specs</groupId>

           <artifactId>geronimo-servlet_3.0_spec</artifactId>

            <version>1.0</version>

           <scope>provided</scope>

    </dependency>

  • avaee-api:

    <dependency>

        <groupId>javax</groupId>

        <artifactId>javaee-api</artifactId>

        <version>7.0</version>

        <scope>provided</scope>

    </dependency>

猜你喜欢

转载自blog.csdn.net/u011294519/article/details/81058321
今日推荐