At least one JAR was scanned for TLDs解决办法

本文详细介绍了在部署Web项目时遇到的JSP编译错误问题,包括错误代码分析、原因查找及解决方案。重点讨论了在使用hibernate+struts+JSP开发框架下,如何解决tomcat对EL表达式的语法要求严格导致的解析错误,通过修改代码、调整tomcat属性等方法成功解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近日在进行web项目开发过程中,遇到一个很奇怪的情况:项目在我自己的电脑上面运行正常,而且能够输出正常结果,但是将项目部署到服务器时,访问就提示出错。

 

web项目采用hibernate+struts+JSP进行开发,在本地以及服务器上面均使用的是tomcat7.0。

 

通过浏览器访问服务器上面的项目时提示:“org.apache.jasper.JasperException: An exception occurred processing JSP page /decorators/searchDnaResultList.jsp at line 394”,提示出错代码如下:

 

 

 

392: <span style="white-space: pre-wrap;"><div style="float: left;"></span> 393: 	<span style="white-space: pre-wrap;"><span class="style1" ></span> 394: 	     <span style="white-space: pre-wrap;"><span style="color:#ff0000;"><c:if test="${sdr.hspScore!=0}"></span></span> 395: 	<span style="white-space:pre">	</span>  <span style="white-space: pre-wrap;">${sdr.hspScore}</span><span style="white-space:pre"> </span>396: 	     </c:if><span>	</span> 397: 	<span style="white-space: pre-wrap;"></span></span><span style="white-space: pre-wrap;">	</span><span style="white-space: pre-wrap;">  </span> 398: </div>     

但是通过分析相关代码,发现这部分代码并没有错误,而且在本地能够正常运行也验证了代码的正确性。

既然代码没错,那么可能就是服务器上面配置可能出现问题,首先想到的就是tomcat出现问题,然后通过查看tomcat的日志发现了如下的提示语句:

 


Dec 29, 2014 7:09:26 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
338 INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

提示表明tomcat编译出错了At least one JAR was scanned for TLDs yet contained no TLDs,原来是tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错。 
根据网友的提示,主要用以下三种解决方案可供参考:
第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字; 
第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}"; 
第三种:修改tomcat属性,忽略对EL表达式的关键字检查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值