Dropwizard ベースの Jersey REST サービスをデフォルト ポート 8080 (サービス) および 8081 (管理者) で実行しています。デフォルト ポートをあまり使用されていないポートに変更する必要があります。そのための情報が見つかりません。誰かが私にそうするように指示できますか?
10 に答える
yaml 構成ファイルでポートを更新できます。
http:
port: 9000
adminPort: 9001
詳細については、 http://www.dropwizard.io/0.9.2/docs/manual/configuration.html#httpを参照してください。
編集
Dropwizard 0.7.x、0.8.x、0.9.x に移行した場合は、次を使用できます。
server:
applicationConnectors:
- type: http
port: 9000
adminConnectors:
- type: http
port: 9001
Dropwizard 0.6 では、コマンド ラインから次のように設定できます。
java -Ddw.http.port=9090 -Ddw.http.adminPort=9091 -jar yourapp.jar server yourconfig.yml
Dropwizard 0.7 を使用する場合、システム プロパティは次のように設定されます。
java -Ddw.server.applicationConnectors[0].port=9090 -Ddw.server.adminConnectors[0].port=9091 -jar yourapp.jar server yourconfig.yml
システム プロパティを使用してポートを構成する場合は、yml にも設定する必要があるようです (とにかく、システム プロパティが優先されます)。少なくとも、Dropwizard 0.7 ではそれが起こっています。YAML ポート構成の例:
server:
applicationConnectors:
- type: http
port: 8090
adminConnectors:
- type: http
port: 8091
これらのポートを YAML に配置しない場合、Dropwizard は次のように文句を言います。
Exception in thread "main" java.lang.IllegalArgumentException: Unable to override server.applicationConnectors[0].port; node with index not found.
以前は dropwizard を使用したことがなく、jersey を使用して単純なサービスを作成しただけです。取扱説明書を見てみることにしましたが、すぐに設定の記述を見つけました。
サービスの開始時に特別な Java システム プロパティを渡すことで、構成設定をオーバーライドできます。上書きは、プレフィックス dw. で始まり、その後に上書きされる構成値へのパスが続く必要があります。たとえば、使用する HTTP ポートをオーバーライドするには、次のようにサービスを開始できます。
java -Ddw.http.port=9090 server my-config.json
それはあなたに適していますか?
Dropwizard 0.6.2 の場合、サービス クラスで以下のようにプログラムでポートを変更できます。
import com.yammer.dropwizard.config.Configuration;
import com.yammer.dropwizard.config.Bootstrap;
import com.yammer.dropwizard.config.Environment;
import com.yammer.dropwizard.config.HttpConfiguration;
import com.yammer.dropwizard.Service;
public class BlogService extends Service<Configuration> {
public static void main(String[] args) throws Exception {
new BlogService().run(new String[] {"server"});
}
@Override
public void initialize(Bootstrap<Configuration> bootsrap) {
bootsrap.setName("blog");
}
public void run(Configuration configuration, Environment environment) throws Exception {
HttpConfiguration config = new HttpConfiguration();
config.setPort(8085);
config.setAdminPort(8086);
configuration.setHttpConfiguration(config);
}
}
ドロップウィザード 0.8.0 の場合 --
YAML ファイルは -
server: type: simple connector: type: http port: 80
コマンドラインからポートを変更したい場合は、
java -Ddw.server.connector.port=9090 -jar yourapp.jar server yourconfig.yml
このコマンドは、YAML ファイルにエントリがある場合にのみ機能します。DW には、上書きできるデフォルト値が必要です。