前两天把项目从eclipse EE版搬到MyEclipse中了。配置好jdk,确定build path中没有报错后,在tomcat中运行。结果,报错:
org.apache.jasper.JasperException: /common/error.jsp(12,0) Unable to read TLD "META-INF/c-1_0-rt.tld" from JAR file "file:/E:/apache-tomcat-6.0.29/webapps/flex/WEB-INF/lib/jstl-1.2.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV
上网查并询问同事之后,得知原因是:我们的项目下存在jsp-api.jar和servlet-api.jar,同时,tomcat下的lib文件下,也存在这两个文件,如图:
我们项目中的这两个jar包和tomcat中自带的jar包冲突了。只要在项目build path中去掉这两个jar包,使它们不被加载编译就行,不需要在项目中删除这两个jar包。
我们项目中的这两个jar包是当项目部署到Weblogic上时使用的,所以在build path中去掉,不会影响。
我很奇怪的是为啥在eclipse下运行的时候没有这个问题……
然后,我启动项目,又报错了:
java.lang.Error: Unresolved compilation problems
编译错误。我对比了eclipse和MyEclipse中的compiler,在eclipse中:
菜单window→properties→搜索compiler,查看,compiler是1.6,
installed JREs,1.6
项目→右击→properties→搜索compiler,查看,compiler是1.6
在MyEclipse中:
菜单window→properties→搜索compiler,查看,compiler是1.6,
installed JREs,1.6
项目→右击→properties→搜索compiler,查看,compiler是1.6
配置一样。只能试着修改一下,我把MyEclipse的compiler改成1.5,启动项目,运行正常了。在浏览器中打开也正常了。