项目场景:
在搭建 SSM + dubbo 系统框架过程中
问题描述:
搭建过程完成后,一直尝试启动,单体SSM服务一直启动失败
服务报错如下:
org.apache.jasper.servlet.TldScanner.scanJars 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启动时会扫描大量jar包,如果含有不符合TLD规范的就会出现这个问题
- 以后基本上不会使用JSP作为视图层,所以我们可能根本不需要TLD这个东西,就算不要TLD也没有什么关系
- 注意两个启动:一个是从tomcat的bin目录中启动,另外一个是从IDEA中或者别的软件中启动,注意看IDEA启动部分
解决方案:
查看了服务器输出: 没有具体报那里错误。
网上百度: 大部分解决办法就是跳过所以jar包的TLD检查,将所有tomcat.util.scan.StandardJarScanFilter.jarsToSkip=后面的所有通过\连接的这些.jar全部删除(操作之前请备份源文件),直接给tomcat.util.scan.StandardJarScanFilter.jarsToSkip赋值".jar",".jar"代表跳过所有以.jar结尾的文件,示例如下
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
实际解决方法: 通过对pom.xml与项目所需的包判断,项目中少导入了spring-beans
重新导入:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
结果:启动成功!