我有一个 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/