我可能听起来很愚蠢,我想我在问一个不正确的设计问题,但只是想知道你的观点。
我想从我的一个CloudFoundry应用程序启动jetty容器,是否可以这样做,我想答案是否定的,因为它将是其他容器内容器的情况,请帮忙。
真正的问题是什么:
我正在尝试将我将从我的一个云代工厂应用程序调用的其他一些其他api存根,并且我正在使用Stubby4J这是一个很好的REST模拟系统,它启动了jetty容器。 Jetty它不是从我的云代工厂应用程序开始,因为它需要一个端口等。
我想我需要改变我的方法并将我的stubby4j应用程序作为一个单独的应用程序(作为云代工厂中的核心Java应用程序)运行,可以从任何cloudfoundry应用程序调用
请建议。
答案 0 :(得分:1)
根本不是愚蠢的,这是一个有效的问题。
我想从我的一个CloudFoundry应用程序启动jetty容器,是否可以这样做,
是的,有可能。有几种选择。
1。)最简单的选择是将Jetty嵌入到您的应用程序中并将其部署为可执行的JAR文件。 CF上的Java构建包将获取可执行的JAR文件并简单地运行它(即java -jar)。
2.)您可以分叉Java构建包并添加对Jetty的支持。通过这种方式,您可以部署WAR文件并使构建包将其分阶段放到Jetty服务器上。
3.。)您可以使用非默认的构建包。我看到有一个Jetty BP可用here。
4.。)您可以分叉和自定义Java Build Pack,甚至只需创建自己的构建包。这最终将使您最大限度地控制应用程序在CF上的部署方式。
Jetty它不是从我的云代工厂应用程序开始,因为它需要一个端口等。
当运行Jetty嵌入式(或实际上嵌入任何东西)时,这是一个合法的问题。使用WAR文件,Java BP将确保部署应用程序并侦听正确的端口。如果嵌入了服务器,则需要确保将其配置为侦听正确的端口(即运行时环境中的$ PORT)。
我想我需要改变我的方法并将我的stubby4j应用程序作为一个单独的应用程序(作为云代工厂中的核心Java应用程序)运行,可以从任何cloudfoundry应用程序调用
听起来你已经在考虑上面的#1了。
答案 1 :(得分:0)
我不确定这是否仍然与 OP 相关,但是可以在 Docker 容器中部署 stubby4j。请参阅https://github.com/azagniotov/stubby4j#running-in-docker