尝试在分层Docker中部署Sping Boot 3.2应用程序时,我基本上遵循this blogpost,具体来说,我的Docker入口点是:
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
然而,Docker不会启动并显示通常的
Error: Could not find or load main class org.springframework.boot.loader.JarLauncher
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.loader.JarLauncher
在对最初的jar文件进行了一些挖掘之后,我发现JarLauncher类实际上在org.springframework.boot.loader.launch.JarLauncher
下。
如果我把入口点换成这个:
ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]
APP真的开始了。
跳回Spring文档,包应该仍然是org.springframework.boot.loader.JarLauncher
(根据文档,我的意思是)
那么. JarLauncher类被移动了,文档已经过时了,还是我的配置中有错误?由于我找不到任何关于此更改的文档(女巫似乎相当重要)
当然,通常的java -jar
命令可以正确运行,因为清单文件是正确的。
我通过使用Sping Boot 2.7启动一个新项目进行了仔细检查,JarLauncher类确实在org.springframework.boot.loader
包中
1条答案
按热度按时间lymgl2op1#
您正在查看Spring 2.3的博客,并且正在使用非最终版Sping Boot 3.2。
类已经移动,请参阅this ticket,如果您查看正确的文档,则文档完全正确。您查看了当前的生产版本3.1,而不是3.2,因为它仍在开发中。
所以简而言之,博客文章(有点)过时了,只要你读了正确的文档,文档就完全有序。