Make Tomcat Ignore Servlet in WEB-INF/LIB
来源:互联网 发布:sql sqlserver一样吗 编辑:程序博客网 时间:2024/06/01 13:12
4down votefavorite
2
I'm created a web-application and I need it to be able to interact with a graph database (I'm using Titan). When adding Titan's dependency, I get the following errors when I try to deploy this WAR in Tomcat:
SEVERE: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:188) 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:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744)Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 moreCaused 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:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 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:173) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5423) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 moreJan 24, 2014 11:43:04 AM org.apache.catalina.core.ContainerBase startInternalSEVERE: A child container failed during startjava.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:188) 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:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 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:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)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(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744)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
Some further research has led me to find that Titan is including not one, but two servlet-api-2.5.jar files. I know that Tomcat does not appreciate it when servlet jars are placed in WEB-INF/lib and am assuming that this is the root of the problem. There are two potential solutions to this:
Make Titan to use the servlet jar within Tomcat
Tell Tomcat to ignore the servlet jar in WEB-INF/lib.
解决如下:
12down vote
Declare servlet as provided
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope></dependency>
or
<dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>servlet-api</artifactId> <version>2.5-20081211</version> <scope>provided</scope></dependency>
and exclude servlet from titan
<dependency> <groupId>titan</groupId> <artifactId>titan</artifactId> <exclusions> <exclude> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclude> </exclusions></dependency>
0 0
- Make Tomcat Ignore Servlet in WEB-INF/LIB
- 信息: validateJarFile(D:\tomcat\Tomcat 5.5\webapps\CH_9\WEB-INF\lib\javax.servlet.jar) - jar not loade
- myeclipse+tomcat jar包冲突导致jsp编译问题及/WEB-INF/lib/ servlet-api.jar) - jar not loaded 问题
- WEB-INF/lib/servlet-api.jar not loaded
- WEB-INF/lib/servlet-api.jar not loaded
- WEB-INF/lib/servlet-api.jar not loaded
- WEB-INF/lib/servlet-api.jar not loaded
- tomcat发布时,WEB-INF/lib下没有jar包
- Eclipse下tomcat部署web项目lib包没有部署到web-inf/lib下
- [Java]Servlet WEB-INF
- validateJarFile(C:/*/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3
- validateJarFile(C:/*/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3
- validateJarFile(C:/*/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3
- 开发Servlet时WEB-INF下面的lib目录下缺jar包的表现
- Spring MVC looks for a file named [servlet-name]-servlet.xml in the WEB-INF
- Unable to load configuration. - bean - jar:file:/d:/Tomcat/webapps/ssh007/WEB-INF/lib/struts2-spring
- Tomcat中将第三方jar移出你的WEB-INF/LIB
- 启动Tomcat报WEB-INF\lib\j2ee.jar jar not loaded异常的解决办法
- 3.5 最短摘要的声成
- 网站域名都是从哪里来的(也就是说网络域名是哪个公司弄出来的,总部在哪里? 购买域名的费用到了谁的口袋?)
- CSS兼容:解决IE6、IE7和IE8的兼容问题
- JavaScript之创建对象
- Swift学习—— 求Fibonacci数列
- Make Tomcat Ignore Servlet in WEB-INF/LIB
- RBM
- 【php+zendframework】调试
- 【Discuz】Discuz的下载、配置与Helloworld
- java 分页类(工具类)
- Installing GCC on Mac
- 安装GenyMotion时出现的错误解决
- 欢迎使用CSDN-markdown编辑器
- centos安装php php-fpm 以及 配置nginx