我最近更新了我的服务器以使用 OpenJDK 21 和 Tomcat 11 (Apache Tomcat/11.0.0-M16)。当我尝试将 WAR 文件部署到 Tomcat
webapps
目录时,遇到以下异常:
java.nio.file.NoSuchFileException:C:\ Program%20Files \ Apache%20Software%20Foundation \ Tomcat%2011.0 \ webapps \ myApp.war
我面临着一个令人困惑的问题,即将打包为 WAR 文件的 Spring Boot 应用程序部署到在基于 Windows 的虚拟服务器上运行的 Tomcat 11。尽管确保应用程序在本地计算机上顺利运行并遵循标准部署过程,但在尝试在服务器上启动应用程序时,我遇到了持续的部署失败。 Tomcat 服务器的示例应用程序运行没有任何问题,表明服务器可以运行。
有趣的是,当我通过 HeidiSQL 这样的工具访问应用程序的数据库表时,我可以看到所有表,并且它们似乎运行正常,这表明应用程序的数据库交互是完整的。
以下是有关我的设置和我观察到的一些细节:
我尝试过调整文件权限并确保 WAR 文件不被标记为只读,但无济于事。相同的应用程序和部署方法在我的本地设置上运行没有任何问题,但在部署到虚拟服务器时失败。
文件路径似乎正确,并且文件存在于指定位置。我的应用程序和简单的“Hello World”应用程序都会发生此错误。
到目前为止我尝试过的:
logs
目录中的 Catalina 和 localhost 日志是否有任何特定错误,但没有发现任何结论。是否存在我忽略的特定配置或兼容性问题导致此部署失败?任何见解、建议或分享的类似经验将不胜感激。
我也有同样的问题。这应该是 Tomcat 11 的错误(在 M16 和 M17 版本上测试),因为我在 Tomcat 10 \webapps 中放入的同一 war 已正确部署。
在更新日志页面中,查找错误 ID 68035(它似乎与我们的问题类似)。 https://bz.apache.org/bugzilla/show_bug.cgi?id=68035 即使它们标记为“已修复”,我仍然面临同样的问题。 我已恢复到 Tomcat 10。