Java アプリケーションの HTTP ポートの設定
最終更新日 2020年04月09日(木)
Heroku では、Web アプリケーションはその HTTP サーバーを、$PORT
環境変数で定義されたポートにバインドすることが想定されています。多くのフレームワークのデフォルトはポート 8080 ですが、代わりに環境変数を使用するように設定できます。ほとんどの場合、アプリケーションの Procfile
で、java
コマンドにパラメータを追加することによってポートを設定できますが、一部のフレームワークでは設定ファイルが提供されます。ここでは、最も一般的な Java フレームワークの一覧を示します。
Spring Boot
Spring Boot では、HTTP ポートを設定するための複数のメカニズムが用意されています。実行可能 JAR ファイルのオプション (java
コマンドの -jar app.jar
オプションよりも後のオプション) として渡すことができます。
--server.port=$PORT
または、Java システムプロパティで次のように指定します。
-Dserver.port=$PORT
どちらの場合も、これらのオプションはアプリの Procfile
で java
コマンドに追加できます。もう 1 つの方法は、application.yml
の設定要素です。
server:
port: $PORT
詳細は、プロパティと設定に関する Spring Boot のドキュメントを参照してください。
Webapp Runner (Tomcat)
Webapp Runner では、単純な java -jar
コマンドを使用して、ファイルシステム上の展開または圧縮された WAR を Tomcat コンテナに起動できます。次のオプションを実行可能 JAR ファイルに (java
コマンドの -jar webapp-runner.jar
オプションよりも後のオプションとして) 渡すことができます。
--port $PORT
heroku war:deploy
および Heroku Maven プラグインツールを使用する場合、このオプションは最初から設定されています。詳細は、Webapp Runner のドキュメントを参照してください。
Play Framework
Netty をそのサーバーとして使用する Play Framework では、Java システムプロパティを (java
コマンドのオプションとして) 指定できます。
-Dhttp.port=$PORT
詳細は、Heroku に関する Play のドキュメント を参照してください。
Dropwizard
Dropwizard フレームワークでは、次の Java システムプロパティを指定できます。
-Ddw.server.applicationConnectors[0].port=$PORT
詳細は、Dropwizard 設定リファレンスを参照してください。
Thorntail
Thorntail フレームワークでは、次のシステムプロパティを指定できます。
-Dswarm.http.port=$PORT
詳細は、WildFly Swarm のドキュメントを参照してください。
Ratpack
Netty サーバーを使用する Ratpack フレームワークでは、$PORT
環境変数を自動的に検出し、そのポートを使用するようにアプリを設定します。
Grails
Grails 3 フレームワークでは、Tomcat または Jetty のどちらかで実行できる WAR ファイルが生成されます。詳細は、Webapp Runner に関するセクションを参照してください。
詳細は、WildFly Swarmを参照してください。