0

私はばかげているように聞こえるかもしれません。私は間違った設計上の質問をしていると思いますが、あなたの視点を知りたかっただけです。

CloudFoundry アプリの 1 つから jetty コンテナーを開始したいです. そうすることは可能ですか? 他のコンテナー内のコンテナーの場合になるので、答えはノーだと思います. 助けてください.

本当の質問は何ですか:

クラウドファウンドリーアプリの1つから呼び出す他の残りのAPIのいくつかをスタブしようとしています。そのために、jettyコンテナーを開始する優れたRESTモックサインシステムであるStubby4Jを使用しています。Jetty は、ポートなどが必要なため、クラウド ファウンドリー アプリ内から開始されません。

私は自分のアプローチを変更し、自分の stubby4j アプリケーションを別のアプリケーションとして (クラウド ファウンドリのコア Java アプリとして) 実行する必要があると思います。

提案してください。

4

2 に答える 2

1

ばかげているわけではありません。これは有効な質問です。

CloudFoundry アプリの 1 つから jetty コンテナーを開始したい. そうすることは可能ですか?

はい、可能です。いくつかのオプションがあります。

1.) 最も簡単なオプションは、Jetty をアプリケーションに組み込み、それを実行可能な JAR ファイルとしてデプロイすることです。CF 上の Java ビルド パックは、実行可能な JAR ファイルを受け取り、単純に実行します (つまり、 java -jar )。

2.) Java ビルドパックをフォークして、Jetty のサポートを追加できます。このようにして、WAR ファイルをデプロイし、ビルド パックでそれを Jetty サーバーにステージングすることができます。

3.) デフォルト以外のビルド パックを使用できます。ここに Jetty BP があるようです。

4.) Java Build Pack を fork してカスタマイズすることも、独自のビルド パックを作成することもできます。これにより、最終的には、アプリケーションを CF にデプロイする方法を最大限に制御できます。

Jetty は、ポートなどが必要なため、クラウド ファウンドリー アプリ内から開始されません。

Jetty を埋め込んで (または実際には何でも埋め込んで) 実行している場合、これは当然の懸念事項です。WAR ファイルを使用すると、Java BP は、アプリケーションがデプロイされ、正しいポートでリッスンしていることを確認します。サーバーを組み込む場合は、正しいポート (つまり、ランタイム環境からの $PORT) でリッスンするようにサーバーが構成されていることを確認する必要があります。

私は自分のアプローチを変更し、自分の stubby4j アプリケーションを別のアプリケーションとして (クラウド ファウンドリのコア Java アプリとして) 実行する必要があると思います。

上記の#1についてすでに考えていたようですね。

于 2015-03-17T15:51:42.683 に答える