在 Openshift 服务器中使用 Rest Web 服务部署 Java 应用程序

Deploy Java application with Rest web services in Openshift server

我正在尝试在 OpenShift 服务器中部署 java 应用程序。我的应用程序分为四个项目:BBDD、Bussiness、Web Services 和 Web。当我使用 openshift 创建应用程序时,它创建了这个结构:src(这个有 java、resources 和 webapp 文件夹)、webapps 和 pom.xml。我不知道如何将我的项目组织成该结构以上传到服务器。 我已将我的网络结构放在 src 内的 webapp 文件夹中。然后,我将其他项目放在 java 文件夹中。当我执行该应用程序时,我可以看到我的网页,并且可以浏览所有网页,但是,当我调用网络服务时,出现以下错误:

Http/1.1 404 未找到

提前致谢,
伊班

Openshift 期望使用 pom.xml 然后 运行 它构建的应用程序在他们的服务器上编译应用程序。为此,您的项目需要 maven webapplication project。只有当您在本地对其进行测试时,您才会期望将代码提交到您的 openshift 服务器(使用 git)它能够成功编译和 运行 应用程序。

这意味着您应该使用SCP上传工具上传文件;您应该使用 git 将您的源代码提交给您的 openshift 服务器,以便它进行编译,然后 运行 您的应用程序。

我通常使用 maven 和 openshift 的方式是将 xml 的片段添加到 pom.xml 中以使 jetty-maven-plugin 能够使用 mvn jetty:run构建并启动项目以在本地进行测试。当且仅当它在本地工作时,我才会尝试部署它。该命令是 'zero install',因为 Maven 下载 Jetty 罐子并将它们 运行 发送到您的项目中。

Redhat openshift 倾向于将 redhat jboss AS 应用服务器作为 Java 解决方案进行推广,因此如果您走这条路,您应该尝试 mvn package 使 war文件并在期望它在服务器上运行之前针对本地 jboss 安装进行测试。有一种方法可以在本地构建 EAR 文件并将其推送到服务器,而不是为服务器提交代码来构建和 运行。

在这个答案的底部,我有一个 link 我写的演示,它显示了我的首选方法。我将我的应用程序创建为 DIY cartridge,它是一个空的 shell,然后自定义 .openshift 文件夹中的脚本以启动我选择的 Java 服务器。我使用 maven 构建我的 webapp,我 运行 使用 jetty-maven-plugin 在 Eclipse 中进行本地调试(maven IDE 插件让我 "debug as... > maven > "jetty:运行") . 然后我配置 pom.xml 来构建我的整个应用程序加上码头 Java 网络服务器到一个巨大的 运行nable jar. 然后我编辑启动脚本以使用 "java -jar" 到 运行 我的完整应用程序。

如果您使用的是 DYI 墨盒,则不需要使用 maven;我使用 sbt 作为构建工具来创建一个 运行nable jar。您只需修改 .openshift 文件夹中的脚本即可下载和 运行 您选择的工具。

我在下面 link 中制作的 GitHub 演示中包含有关如何在 openshift 上部署它的说明。所以你可能想要得到那个 运行ning 然后在你可以在本地调试它并将它推送到你的 openshift 服务器之后撕掉我的代码并添加你的代码:

https://github.com/simbo1905/zkmongomaps