第一次遇到这种问题,一直以为是“ org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。” 所造成的。所以解决问题这几天都是搜索的"至少有一个JAR被扫描用于TLD但尚未包含TLD"这个问题怎么解决。当然其中搜索的所有的解决方案都不能解决我这个问题。
我一度怀疑是自己的环境没有搭建好。我重新搭建了一个新的项目,项目结构清晰可见,就一个hello.html。
打出的war包依旧不能用。因为之前遭遇用了一年多的字体文体突然莫名损坏的问题,我从新搭下载了tomcat,清除了本地的maven仓库。然乎还是不行,但是我之前的一个项目是可以的,同样的框架,同样的工具,打出的war包竟然可以部署到tomcat上。然后我换了一个版本的idea,结果仍然不行。
然后我开始想,是不是我的排查的问题并不是这个问题的问题呢?
运行statup.bat 后 tomcat 下的 webapps 是有相关war包解压出来的工程文件的。但是访问该项目确实404。
所以我换了下思路,搜索了一下 “spring boot war 部署到tomcat 不能访问”,下面帖子解决了我的问题:
https://blog.csdn.net/susu1083018911/article/details/103119482
https://blog.csdn.net/helang296479893/article/details/102824866
与之前没问题的项目对比,确实是少了第二步,启动类没继承 SpringBootServletInitializer
希望对你们有用。不想跳转的小伙伴儿可以看我转载的内容:
1.移除 spring boot 内嵌的 tomcat
红框是添加的内容,作用是移除tomcat
2. 启动类,继承 SpringBootServletInitializer
然后重新打包即可!
经测试,是第一步可以忽略!
也是吃了没有文化的亏,对于spring boot 太过于的依赖,因为spring boot 的过于简单的配置,是自己过于依赖与它,学无止境呢!
网友评论