微软平台部署GAE遇Missing TLD Jar错误,如何解决并跳过冗余JAR?
解决Google App Engine部署时的TLD Jar扫描提示问题
嘿,我来帮你搞定这个问题~首先得明确:你看到的At least one JAR was scanned for TLDs yet contained no TLDs其实是INFO级别的日志提示,不是错误,它不会打断你的部署流程,只是告诉你有些JAR包里没有JSP标签库描述文件(TLD),扫描这些JAR属于多余操作。如果想消除这个提示或者跳过扫描不需要的JAR,试试下面这几个方案:
方案一:在web.xml中配置跳过指定JAR的TLD扫描
打开你项目里的war/WEB-INF/web.xml文件,添加<jsp-config>节点,把不需要扫描的JAR包列进去:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <!-- 替换成你要排除的JAR文件名,多个用多个exclude-taglib-jar标签 --> <exclude-taglib-jar>some-library.jar</exclude-taglib-jar> <exclude-taglib-jar>another-unneeded.jar</exclude-taglib-jar> </jsp-property-group> </jsp-config>
如果不知道具体是哪些JAR,可以先开启debug日志找到这些JAR,再添加到排除列表里。
方案二:调整日志级别隐藏INFO提示
要是你只是不想看到这个日志,不用改变扫描逻辑,可以修改项目的日志配置:
- 在
war/WEB-INF目录下创建(如果没有的话)logging.properties文件 - 添加以下配置:
org.apache.jasper.servlet.TldScanner.level = WARNING
这样日志系统就只会输出WARNING及以上级别的内容,这个INFO提示就不会再出现了。
方案三:通过appcfg.cmd的JVM参数指定排除规则
执行更新命令时,直接给JVM传递跳过扫描的参数,比如:
C:\Users\tiger\Downloads\appengine-java-sdk-1.9.63\appengine-java-sdk-1.9.63\bin>appcfg.cmd -Dorg.apache.jasper.servlet.TldScanner.skipJars="some-library.jar,another-unneeded.jar" update C:\Users\tiger\Downloads\jsonengine-0.2.20110102\jsonengine\war
注意这里的skipJars参数值是逗号分隔的JAR文件名,替换成你实际需要排除的即可。
最后再提一句:如果你的部署流程没有失败,只是看到这个日志,其实完全可以不用处理它,它对功能没有影响。
内容的提问来源于stack exchange,提问作者Paul Hutcherson
相关产品推荐
相关产品推荐

