tomcat导入一个x.jar包,但是该jar包和tomcat/lib下的servlet tomcat 关系-api.jar冲突导致x.jar无法加载

3225人阅读
jetty&tomcat(5)
java web开发(21)
在tomcat 7.0.59版本下,java打得war包依赖了service api的包,然后tomcat启动报了下面的错,导致应用启动失败,访问不了。
Mar 20, :09 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/ubuntu/apache-tomcat-7.0.59/webapps/jiagoushi/WEB-INF/lib/servlet-api-3.0-alpha-1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
查了下应用的pom依赖,将下面的依赖去掉就可以了
&dependency&
&groupId&javax.servlet&/groupId&
&artifactId&servlet-api&/artifactId&
&version&3.0-alpha-1&/version&
&/dependency&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:734586次
积分:10184
积分:10184
排名:第985名
原创:263篇
转载:11篇
评论:130条
(1)(1)(2)(2)(2)(1)(1)(2)(1)(36)(13)(11)(7)(1)(10)(12)(14)(1)(11)(14)(9)(41)(20)(1)(1)(2)(1)(6)(2)(10)(15)(4)(8)(10)(7)如何解决依赖包servlet-api和容器自带servlet的jar包的冲突_百度知道
如何解决依赖包servlet-api和容器自带servlet的jar包的冲突
解决依赖包servlet-api和容器自带servlet的jar包的冲突的办法:在web应用中,WEB-Inf目录下,也可以建立lib子目录,在此子目录下可以存放各种jar文件,这些jar文件只能被当前web应用访问。其中,在web-inf目录下的lib与classes目录,Tomcat类装载器先装载classes目录下的类,再装载lib目录下的类。因为类同名时,classes优先。 其中jsp运行时,查找class的顺序为:项目文件夹(WEB-INF\lib)—&容器文件夹(tomcat\common\lib)—&jdk文件夹(jdk\jre\lib\ext) Tomcat是一种向上寻找的层次结构,也有向下的,或者是可配置的。 Tomcat的class加载的优先顺序一览 ————- 1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。 2.环境变量CLASSPATH中的jar和class文件。 3.$CATALINA_HOME/common/classes下的class文件。 4.$CATALINA_HOME/commons/endorsed下的jar文件。 5.$CATALINA_HOME/commons/i18n下的jar文件。 6.$CATALINA_HOME/common/lib 下的jar文件。(JDBC驱动之类的jar文件可以放在这里,避免配置好数据源却找不到JDBC Driver的情况。) 7.$CATALINA_HOME/server/classes下的class文件。 8.$CATALINA_HOME/server/lib/下的jar文件。 9.$CATALINA_BASE/shared/classes 下的class文件。 10.$CATALINA_BASE/shared/lib下的jar文件。 11.各自具体的webapp /WEB-INF/classes下的class文件。 12.各自具体的webapp /WEB-INF/lib下的jar文件。 class的搜寻顺序如下 ————- /WEB-INF/classes of your web application /WEB-INF/lib/*.jar of your web application $CATALINA_HOME/common/classes $CATALINA_HOME/common/endorsed/*.jar $CATALINA_HOME/common/i18n/*.jar $CATALINA_HOME/common/lib/*.jar $CATALINA_BASE/shared/classes $CATALINA_BASE/shared/lib/*.jar ————– 因此放在不同webapp里的class文件,会被classloader加载成不同的实例。 在不同的webapp加载相同类名的类互不影响。 但是注意,以下包名开头的class例外: javax.* org.xml.sax.* org.w3c.dom.* org.apache.xerces.* org.apache.xalan.* ps,注意.在各个jar中的\META-INF\MAINFEST.MF文件里Class-Path键值对,也会提供jar的加载优先顺序。 例如某jar的MAINFEST.MF内容如下: Manifest-Version: 1.0 Created-By: Zianed Class-Path: commons-beanutils.jar Class-Path: commons-collections.jar Class-Path: commons-dbcp.jar Class-Path: commons-digester.jar Class-Path: commons-logging.jar Class-Path: commons-pool.jar Class-Path: commons-services.jar Class-Path: commons-validator.jar Class-Path: jakarta-oro.jar Main-Class: Test
其他类似问题
为您推荐:
version&artifactId&exclusion&artifactId&gt。大概的例子如下;groupId&servlet-api&&#47.1;/artifactId&artifactId&dependency&/
&artifactId&scope&
&&#47,再加入你所需要的版本的servlet-api依赖;dependency&gt.1;dependency&&#47.jetty&//
&version&&#47,可以在commons-logging的依赖里把servlet-api-2;servlet-api-2;groupId&groupId&
&exclusion&gt.
指定scope为provided可以避免在发布的时候把servlet-api包拷到lib目录下;scope&
&groupId&6;/artifactId&commons-logging&/
&dependency&
&groupId&version&
&lt.1&exclusions&
&provided&
&exclusions&commons-logging&1.5&/
&&#47.3去除掉;&#47.servlet&lt:
&groupId&gt如果你的工程是用maven管理的话
知道智能回答机器人
我是知道站内的人工智能,可高效智能地为您解答问题。很高兴为您服务。
servlet的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我的msn是:yuhui_
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
##解除类org.piler.TldLocationsCache的log&&org.piler.TldLocationsCache.level&=&FINE&&
&2.观察Tomcat日志打印信息
步骤1执行完后,重启Tomcat,观察Tomcat日志,会在日志中发现类似如下打印信息:
Java代码 &九月&09,&2013&10:55:37&上午&org.piler.TldLocationsCache&tldScanJar&&详细:&No&TLD&files&were&found&in&[file:/E:/devspace/xxt_login/WEB-INF/lib/json-lib-2.3-jdk15.jar].&Consider&adding&the&JAR&to&the&tomcat.util.scan.DefaultJarScanner.jarsToSkip&or&org.apache.catalina.startup.TldConfig.jarsToSkip&property&in&CATALINA_BASE/conf/catalina.properties&file.&&九月&09,&2013&10:55:37&上午&org.piler.TldLocationsCache&tldScanJar&&详细:&No&TLD&files&were&found&in&[file:/E:/devspace/xxt_login/WEB-INF/lib/poi-3.8.jar].&Consider&adding&the&JAR&to&the&tomcat.util.scan.DefaultJarScanner.jarsToSkip&or&org.apache.catalina.startup.TldConfig.jarsToSkip&property&in&CATALINA_BASE/conf/catalina.properties&file.&&
3.调整${tomcat}/conf/catalina.properties,将提示的jar添加到不扫描清单中
Java代码 &tomcat.util.scan.DefaultJarScanner.jarsToSkip=\&&bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\&&annotations-api.jar,el-api.jar,jsp-api.jar,servlet-api.jar,\&&catalina.jar,catalina-ant.jar,catalina-ha.jar,catalina-tribes.jar,\&&jasper.jar,jasper-el.jar,ecj-*.jar,\&&tomcat-api.jar,tomcat-util.jar,tomcat-coyote.jar,tomcat-dbcp.jar,\&&tomcat-jni.jar,tomcat-spdy.jar,\&&tomcat-i18n-en.jar,tomcat-i18n-es.jar,tomcat-i18n-fr.jar,tomcat-i18n-ja.jar,\&&tomcat-juli-adapters.jar,catalina-jmx-remote.jar,catalina-ws.jar,\&&tomcat-jdbc.jar,\&&tools.jar,\&&commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,\&&commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,\&&commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,\&&commons-math*.jar,commons-pool*.jar,\&&jstl.jar,\&&geronimo-spec-jaxrpc*.jar,wsdl4j*.jar,\&&ant.jar,ant-junit*.jar,aspectj*.jar,jmx.jar,h2*.jar,hibernate*.jar,httpclient*.jar,\&&jmx-tools.jar,jta*.jar,log4j*.jar,mail*.jar,slf4j*.jar,\&&xercesImpl.jar,xmlParserAPIs.jar,xml-apis.jar,\&&junit.jar,junit-*.jar,ant-launcher.jar,\&&json-lib-*.jar,poi-*.jar&&
1.如果使用eclipse server插件、Sysdeo tomcat插件启动Tomcat,此配合可能无效
2.步骤1调整完后,最好清除下以下两个文件夹${tomcat}/conf/Catalina ${tomcat}/work/Catalina
3.尽量使用*号实现模式匹配,以避免因jar版本升级带来的重复修改代价
【参考资料】
Servlet3.0新特性
&转自:http://mov-/blog/1939655
阅读(27699)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'解决Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”问题',
blogAbstract:'【Tomcat版本】7.0.42\n【问题描述】Tomcat启动后,访问动态页面后提示“At least one JAR was scanned for TLDs yet \ncontained no TLDs. Enable debug logging for this logger for a complete \nlist of JARs that were scanned but no TLDs were found in them. Skipping \nunneeded JARs during scanning can improve startup time and JSP \ncompilation time”\n&\n【问题原因猜测】Tomcat7/Servlet3.0&新增特性“可插性支持”实现的原理应该是自动扫描jar,当jar中并不包含相关组件时会打印该信息',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:7,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'我的msn是:yuhui_',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 tomcat7 servlet 版本 的文章

 

随机推荐