简体   繁体   English

java.lang.LinkageError:加载器约束违规:loader(org / apache / catalina / loader / WebappClassLoader的实例)

[英]java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader)

Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/projectname]] 无法启动组件[StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext [/ projectname]]

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" 引起:java.lang.LinkageError:加载器约束违规:加载器(org / apache / catalina / loader / WebappClassLoader的实例)先前为名为“javax / servlet / ServletContext”的其他类型启动加载

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]] org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Tomcat] .StandardHost [localhost]]

In print stack trace it is not giving any ClassNotFoundException :HttpServletRequest also. 在打印堆栈跟踪中,它没有给出任何ClassNotFoundException :HttpServletRequest

I have added tomcat maven plug-in in pom.xml file. 我在pom.xml文件中添加了tomcat maven插件。 I want to run some Integration Tests, so I added plug-in to run before integration starts. 我想运行一些集成测试,所以我在集成开始之前添加了插件来运行。 Here is my plug-in 这是我的插件

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>8989</port>
        <systemProperties>
            <archaius.deployment.environment>test</archaius.deployment.environment>
        </systemProperties>
        <path>/${project.name}</path>
    </configuration>
    <executions>
        <execution>
            <id>tomcat-run</id>
            <goals>
                <goal>run</goal>
            </goals>
            <phase>pre-integration-test</phase>
            <configuration>
                <systemProperties>
                    <!-- We want test configuration for running integration tests. -->
                    <archaius.deployment.environment>test</archaius.deployment.environment>
                    <logback-lib.env>filesystem</logback-lib.env>
                </systemProperties>
                <fork>true</fork>
            </configuration>
        </execution>
        <execution>
            <id>tomcat-shutdown</id>
            <goals>
                <goal>shutdown</goal>
            </goals>
            <phase>post-integration-test</phase>
        </execution>
    </executions>
</plugin>

this plug-in I added in pom.xml file. 我在pom.xml文件中添加了这个插件。

I also added servlet dependency and provided scope as provided only. 我还添加了servlet dependency ,并为提供范围provided唯一的。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

When I do mvn clean install its giving following exception 当我做mvn clean install给出以下异常

SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/projectpath]] 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(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.ru SEVERE:启动期间子容器失败java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:无法在java.util启动组件[StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext [/ projectpath]]。 concurrent.FutureTask.report(FutureTask.java:122),位于org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)的java.util.concurrent.FutureTask.get(FutureTask.java:192) .apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1559)位于java.util的java.util.concurrent.FutureTask.run(FutureTask.java:266)的org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1549)。 concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.ru n(Thread.java:745) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/projectpath]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 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.fin n(Thread.java:745)引起:org.apache.catalina.LifecycleException:无法在org.apache.catalina.util.LifecycleBase启动组件[StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext [/ projectpath]] .start(LifecycleBase.java:154)... 6更多引起:java.lang.LinkageError:加载器约束违规:加载器(org / apache / catalina / loader / WebappClassLoader的实例)先前为具有名称的其他类型启动加载位于java.security.ClassLoader.defineClass(ClassLoader.java:763)的java.lang.ClassLoader.defineClass1(本地方法)中的“javax / servlet / ServletContext”,位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at java.net.URLClassLoader.access java.net.URLClassLoader.access(URLClassLoader.java:477 .URLClassLoader $ 1.run(URLClassLoader.java:362)位于java.net.URLClassLoader.fin的java.security.AccessController.doPrivileged(Native Method) dClass(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 java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.getDeclaredMethods(Class.java:1975) at org.apache.catalina.util.Introspection.getDeclaredMethods(Introspection.java:127) at org.apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.java:281) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:113) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:66) at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405) at org.apache.catalina.startup.ContextConfig.co 位于org.apache的org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1191)中的dClass(URLClassLoader.java:361)org.apache上的org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1669) .catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)位于java.lang.Class.Class.devlaredMethods上的java.lang.Class.getDeclaredMethods0(Native Method),java.lang.Class.getDeclaredMethods上的java.lang.Class.privateGetDeclaredMethods(Class.java:2701) (Class.java:1975)位于org.apache的org.apache.catalina.util.Introspection.getDeclaredMethods(Introspection.java:127)org.apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.java:281)。位于org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:66)的catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:113)org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java: 405)在org.apache.catalina.startup.ContextConfig.co nfigureStart(ContextConfig.java:881) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 more nfigureStart(ContextConfig.java:881)位于org.apache的org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)位于org.apache.catalina.util.LifecycleBase.start的Org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)中的.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)(LifecycleBase.java) :150)......还有6个

Sep 28, 2016 12:29:26 PM org.apache.catalina.core.ContainerBase startInternal SEVERE: 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.j 2016年9月28日下午12:29:26 org.apache.catalina.core.ContainerBase startInternal SEVERE:启动时子容器失败java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:启动组件失败[StandardEngine [Tomcat] .StandardHost [localhost]],位于org.apache.catalina的java.util.concurrent.FutureTask.report(FutureTask.java:122)java.util.concurrent.FutureTask.get(FutureTask.java:192)。 core.ContainerBase.startInternal(ContainerBase.java:1123)org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)org.apache.catalina.core.StandardServer.startInternal (StandardServer.java:732)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)org.apache.catalina.startup.Tomcat.start(Tomcat.j) ava: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:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 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:128) at org.apache. ava:341)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)org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)org.apache.maven.life.internal.MojoExecutor.execute(MojoExecutor.java:207)atg.apache.maven .lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)org.apache.maven.life.internal.MojoExecutor.execute(MojoExecutor.java:145)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:116)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java) :51)在org.apache的org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)。 maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 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) Caused by: org.apache.cat org.apache上的org.apache.maven.maven.DefaultMaven.execute(DefaultMaven.java:106)上的org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)中的maven.DefaultMaven.doExecute(DefaultMaven.java:307) .maven.cli.MavenCli.execute(MavenCli.java:863)org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)org.apache.maven.cli.MavenCli.main(MavenCli.java) :199)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。反映.Method.invoke(Method.java:498)org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher。 java:229)org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)引起:org .apache.cat alina.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(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: 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) ... 6 more alina.LifecycleException:无法在org.apache.catalina.core.ContainerBase $ StartChild的org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)启动组件[StandardEngine [Tomcat] .StandardHost [localhost]] .call(ContainerBase.java:1559)位于java的java.util.concurrent.FutureTask.run(FutureTask.java:266)的org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1549)。 java.lang.ThreadPoolExecutor中的util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)java.lang.Thread.run(Thread.java:745)中的java.man.run(ThreadPoolExecutor.java:617)引起的:org.apache.catalina.LifecycleException:org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)org.apache.catalina.core.StandardHost.startInternal(StandardHost.java)启动时子容器失败:800)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 6更多

I solved this issue, actually javax.servlet was internally invlolved by other dependencies http-lib and commons-util . 我解决了这个问题,实际上javax.servlet是由其他依赖项http-libcommons-util内部调用的。

I used 我用了

<exclusions>
    <exclusion>
         <artifactId>servlet-api</artifactId>
        <groupId>javax.servlet</groupId>
    </exclusion>
</exclusions>

In both the dependencies. 在两个依赖项中。 Then the problem was solved 然后问题解决了

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.LinkageError:加载器约束违规 - java.lang.LinkageError: loader constraint violation Tomcat 8 java.lang.LinkageError:加载程序约束冲突 - Tomcat 8 java.lang.LinkageError: loader constraint violation java.lang.LinkageError:违反加载程序约束:解析方法时 - java.lang.LinkageError: loader constraint violation: when resolving method java.lang.LinkageError:违反加载程序约束…EquinoxClassLoader / VNative - java.lang.LinkageError: loader constraint violation … EquinoxClassLoader / VNative Zxing-java.lang.LinkageError:加载程序约束冲突 - Zxing - java.lang.LinkageError: loader constraint violation java.lang.LinkageError:接口itable初始化中的加载器约束违规 - java.lang.LinkageError: loader constraint violation in interface itable initialization 奇怪的 maven 异常:java.lang.LinkageError:loader 约束冲突 - Strange maven exception: java.lang.LinkageError:loader constraint violation java.lang.LinkageError:Spring MVC 和 Thymeleaf 的加载器约束冲突 - java.lang.LinkageError: loader constraint violation for Spring MVC and Thymeleaf java.lang.LinkageError:接口itable初始化中的加载器约束违规: - java.lang.LinkageError: loader constraint violation in interface itable initialization: slf4j java.lang.LinkageError 加载器约束违规 - slf4j java.lang.LinkageError loader constraint violation
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM