java - dropwizard 项目中的默认 http/admin 端口

标签 java port dropwizard

我有一个 dropwizard 项目,并且我在项目的根目录维护了一个 config.yml 文件(基本上与 pom.xml 处于同一级别)。这里我指定了要使用的 HTTP 端口,如下所示:

http:
    port:9090
    adminPort:9091

我的 TestService.java 文件中有以下代码

public class TestService extends Service<TestConfiguration> {

    @Override
    public void initialize(Bootstrap<TestConfiguration> bootstrap) {
        bootstrap.setName("test");
    }

    @Override
    public void run(TestConfiguration config, Environment env) throws Exception {
        // initialize some resources here..
    }

    public static void main(String[] args) throws Exception {
        new TestService().run(new String[] { "server" });
    }

}

我希望使用 config.yml 文件来确定 HTTP 端口。然而,该应用程序似乎总是以默认端口 8080 和 8081 启动。另请注意,我是从 eclipse 运行它的。

关于我在这里做错了什么有什么见解吗?

最佳答案

尝试按如下方式运行您的服务:

将您的主要方法重写为:

public static void main(String[] args) throws Exception {
        new TestService().run(args);
}

然后在 Eclipse 中转到“运行 --> 运行配置...”,为您的类创建一个新的运行配置,转到“参数”并添加“服务器路径/to/config.yml”在“程序参数”中。如果你把它放在根目录下,它将是“server config.yml”

我相信您没有传递 .yml 文件的位置/名称,因此您的配置没有被加载。另一个解决方案是将配置文件的位置添加到传递给 run 的数组中;)

关于java - dropwizard 项目中的默认 http/admin 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25396459/

相关文章:

dropwizard - 从 Initialize() 访问 Dropwizard 配置?

java - Dropwizard 指标的管理端口不起作用

java - 为什么在不可变对象(immutable对象)中使用 getter 而不是公共(public)字段?

java - NoClassDefFoundError、proGuard 和补间引擎库

macos - 使用 ImageMagick 的 SVG 转换不能正确应用翻译

python - selenium.common.exceptions.WebDriverException : Message: 'Can not connect to GhostDriver'

centos - 从外部访问 80 端口 - Centos

java - 必须在 DesiredCapabilites 中设置什么才能运行应用程序应用程序?

java - 已关闭 - 如何导入另一个不在 Java 库中的类

java - Json 字符串在 Jersey