如何解决在 Rapidclipse X 上将战争文件部署到 tomcat 9 时出错
在 Windows 10 版本 20H2 上使用 Java11 (Azul Zulu OpenJdk) 在 tomcat9 服务器上启动在 RapidClipseX 中创建的最小应用程序时遇到初始问题。
我安装了 RapidClipseX 10.3,将一个 tomcat 9 zip 文件解压到目录“tomcat9”,安装了 Azul Zulu OpenJdk 11,然后启动了 RapidClipseX IDE。首先,将 tomcat9 设置为 RapidClipseX 的本地服务器。然后使用新的 AppLayout 模板创建了一个演示项目。 IDE 在此处创建文件后,我单击“构建 Web 应用程序 (.war)”以进行构建。这很顺利,没有任何错误。然后我单击“启动 Servlet”,然后选择 tomcat9 服务器并将应用程序添加到它启动的列表中。 查看秒后,在控制台窗口中出现了以下错误消息以及许多其他异常:
无法确定开发模式的项目目录。目录“C:\Program Files\XDEV Software\RapidClipse X”看起来不像 Maven 或 Gradle 项目。在部署应用程序之前,确保您已运行 prepare-frontend Maven 目标,该目标会生成“flow-build-info.json”
它以决赛结束: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/crudtest]]
然后它停止工作并退出 tomcat 服务器。
我一般了解 vaadin 的构建过程,并且已经使用 maven 和 spring boot 设置了用于 vaading 的项目。据我所知,它没有运行他的 npm 构建步骤。在生成的 pom.xml 中,我找不到任何为此使用 vaadin 插件的迹象。
如果环境已经能够使用 maven 构建、在 Java 11 上运行并且安装了 tomcat 9,我会假设 RapidClipseX IDE 已经开箱即用了。但事实并非如此。那么有人可以告诉我这里有什么问题吗?
最好的感谢所有答案, 拉尔夫
解决方法
处于开发模式的 Vaadin 需要找到应用程序自己源的位置,以便管理客户端依赖项,例如 Vaadin Web 组件。为 .war
部署找到它的主要方法是 prepare-frontend
中的 vaadin-maven-plugin
目标将找到位置并将其存储在一个名为 flow-build-info.json
的文件中,它放在一个位置应该在生成的 .war
文件中结束。
我不完全熟悉 RapidClipse X 如何与 Maven 和 Tomcat 集成,但我怀疑您的问题是由该领域的某些东西引起的。您可以做的第一件事是检查 prepare-frontend
是否已运行。您可以通过检查是否存在 target/classes/META-INF/VAADIN/config/flow-build-info.json
文件(并且它包含几个引用应用程序源的绝对位置的条目)来完成此操作。 RapidClipse X 可能不会自动运行 prepare-frontend
,在这种情况下,您需要在每次清理项目构建时手动执行此操作。
如果该文件存在于 target
目录中,那么下一个问题可能是由于某种原因它没有包含在部署到 Tomcat 的 .war
文件中。您可以尝试找到构建 .war
文件(它也可能是“爆炸战争”的形式,它只是文件系统中具有相同内容的目录)并检查它是否也包含相同的文件在位置 WEB-INF/classes/META-INF/VAADIN/config/flow-build-info.json
。如果文件从那里丢失,那么一种可能性是 RapidClipse X 在创建 .war 之前正在清理 target
目录,或者它从某个其他位置而不是基于.war
目录的内容。
恐怕我对您的问题没有任何明确的答案,但只有一些关于您可能需要研究的方向的模糊线索:(。我希望我的指示仍然可以至少提供一些帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。