解决 Windows vServer 上 Tomcat 11 和 JDK 21 上的 Spring Boot WAR 部署问题

问题描述 投票:0回答:1

我最近更新了我的服务器以使用 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 这样的工具访问应用程序的数据库表时,我可以看到所有表,并且它们似乎运行正常,这表明应用程序的数据库交互是完整的。

以下是有关我的设置和我观察到的一些细节:

  • 我使用的是 OpenJDK 21 和 Tomcat 11,它们是最新版本,应该兼容。
  • Tomcat安装时附带的示例代码运行良好,说明服务器设置正确。
  • 该问题似乎与基于 Windows 的虚拟服务器上的部署和运行无关。
  • 我的本地开发设置使用 Spring Boot 的嵌入式 Tomcat,运行完美。

我尝试过调整文件权限并确保 WAR 文件不被标记为只读,但无济于事。相同的应用程序和部署方法在我的本地设置上运行没有任何问题,但在部署到虚拟服务器时失败。

文件路径似乎正确,并且文件存在于指定位置。我的应用程序和简单的“Hello World”应用程序都会发生此错误。

到目前为止我尝试过的:

  • 检查和修改文件系统访问权限。
  • 检查
    logs
    目录中的 Catalina 和 localhost 日志是否有任何特定错误,但没有发现任何结论。
  • 重新打包并部署一个简单的“Hello World”WAR 文件。

是否存在我忽略的特定配置或兼容性问题导致此部署失败?任何见解、建议或分享的类似经验将不胜感激。

java tomcat deployment server war
1个回答
0
投票

我也有同样的问题。这应该是 Tomcat 11 的错误(在 M16 和 M17 版本上测试),因为我在 Tomcat 10 \webapps 中放入的同一 war 已正确部署。

在更新日志页面中,查找错误 ID 68035(它似乎与我们的问题类似)。 https://bz.apache.org/bugzilla/show_bug.cgi?id=68035 即使它们标记为“已修复”,我仍然面临同样的问题。 我已恢复到 Tomcat 10。

© www.soinside.com 2019 - 2024. All rights reserved.