一.Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
1.原因分析
(1)Tomcat出于安全及合规性,启动时会扫描大量jar包,如果含有不符合TLD规范的就会提示以上信息;
(2)如果项目中基本上不使用JSP作为视图层,那么就不需要扫描TLD这个东西;
(3)从tomcat的bin目录中启动扫描TLD会占用Tomcat启动时间。
2.处理步骤
(1)定位到Tomcat安装目录下apache-tomcat-7.0.109\conf\catalina.properties文件,打开看到有以下配置代码,代表在启动Tomcat默认跳过检查的jar包
![](https://img-blog.csdnimg.cn/img_convert/f7cc0f264ec1845495655e30af3db009.png)
(2)要想跳过所有jar包的TLD检查,可以将所有的tomcat.util.scan.DefaultJarScanner.jarsToSkip=后面的所有通过\连接的这些.jar全部删除(建议操作之前对源文件进行备份),直接给tomcat.util.scan.DefaultJarScanner.jarsToSkip赋值"*.jar","*.jar"代表跳过所有以.jar结尾的文件,示例如下:
tomcat.util.scan.DefaultJarScanner.jarsToSkip=*.jar
![](https://img-blog.csdnimg.cn/img_convert/2b1a57467fc8407d667f5fa301ae93ea.png)
二.Windows系统下通过服务启动Tomcat一直报错PermGen space
原因分析
最初是选择startup.bat和服务启动都提示PermGen space,创建setenv.bat文件并设置以下配置参数值:
set JAVA_OPTS=-server -Xms1024m -Xmx2048m -XX:MaxNewSize=1024m -XX:PermSize=1024m -XX:MaxPermSize=2048m
之后,选择startup.bat可以正常启动了,但是通过服务依然不可以。很显然,catalina.bat中的参数值对执行脚本时有用,但通过服务无法生效。
2.处理步骤
当以服务安装完并配置为自动启动之后,需要到注册列表中找到如下选项进行配置。
(1)打开注册列表编辑器,找到如下位置HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcat7.0.109\Parameters\Java(注意:Win7 X64系统则位于HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\tomcat7.0.109\Parameters\Java) ;
![](https://img-blog.csdnimg.cn/img_convert/ed336ccc43d25dd93ad205b2d6984f1d.png)
(2)双击右侧窗口的“Options”键值,在末尾添加如下行:
-XX:MaxPermSize=2048M
![](https://img-blog.csdnimg.cn/img_convert/72360f7faf6b22c9882e4a7bb6af4df1.png)
然后点击确定保存。