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

时间:2015-02-22 19:38:01

标签: java openshift

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

未找到Http / 1.1 404

提前致谢,
伊班

1 个答案:

答案 0 :(得分:2)

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

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

我通常使用maven和openshift的方法是将一个xml片段添加到pom.xml中,以使jetty-maven-plugin能够使用mvn jetty:run来构建和启动项目以进行测试它在当地。如果 - 并且 - 如果它在本地工作,我尝试部署它。该命令是零安装'当maven下载jetty jar并在你的项目上运行它们。

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

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

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

我在下面的链接中制作的GitHub演示有关于如何在openshift上部署它的说明。因此,您可能希望在运行之后再将其运行,然后将其推送到您的openshift服务器,然后删除我的代码并添加所有代码:

https://github.com/simbo1905/zkmongomaps