在OpenShift中部署WAR

时间:2017-12-20 12:21:30

标签: java mysql openshift war

我有一个Java .war文件,我需要使用mysql DB托管。 任何人都可以帮助确定在OpenShift中托管它的过程吗? 以及如何建立从app到DB的连接?

1 个答案:

答案 0 :(得分:0)

假设您正在使用Maven构建应用程序并且您在OpenShift Online上运行它,那么您可以使用内置的Java模板。使用“添加到项目”并选择“Java”并选择“打开JDK”。它会要求您输入代码的名称和git url。您应该首先使用它建议的git url,看看他们的示例代码是如何由maven构建的,并在Openshift上运行。

如果您不喜欢他们的代码构建/运行的方式,那么我编写了一个构建WAR的Java演示,然后告诉Openshift使用tomcat7-maven-plugin运行WAR。 POM文件有一个“openshift”maven配置文件,它使用tomcat7来运行你可以看到的here的WAR。默认情况下,在标准的Openshift OpenJDK模板上启用该配置文件。

运行Java代码后,建议您将MySQL数据库部署为项目中的单独pod / service。这样,您可以独立于数据库扩展Java pod。您可以再次使用内置的Openshift Online模板。选择“添加到项目”,“数据存储”,“MySQL(持久)”并使用默认值。

最后一部分是如何将Java应用程序连接到数据库。在这里,您可以非常安全地使用OpenShift。正如我们所见here OpenShift作为内部DNS发布任何服务的IP。当我运行mysql模板时,它作为服务“mysql”创建。然后将其作为<service>.<pod_namespace>.svc.cluster.local发布在DNS中。 pod_namespace是openshift项目。所以在我的情况下,我的演示代码OpenShift项目被调用 thinbus-srp-spring-demo因此Java pod可以使用DNS名称mysql.thinbus-srp-spring-demo.svc.cluster.local连接到mysql服务。所以我可以将它配置为JDBC连接字符串中的数据库主机名。

这些说明是如何使用鼠标的,它假设您正在使用安装了OpanJDK和MySql模板的OpenShift实例。你实际上并不需要任何这些。您可以创建具有整个解决方案的自定义模板。这是一个相当高级的主题,因此我不会在这个答案中涵盖这一点。