我们在yml文件中使用服务器配置,如下所示
System.setProperty("webdriver.chrome.driver", PATH_TO_EXE_FINAL);
ChromeOptions opt = new ChromeOptions();
opt.addArguments("disable-extensions");
opt.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(opt);
我想在启动dropwizard服务时获得“applicationContextPath”。
我正在尝试使用
server:
type: simple
connector:
type: http
port: 8061
applicationContextPath: /administration
adminContextPath: /admin
#disable the registration of default Jersey ExceptionMappers
registerDefaultExceptionMappers: false
但我得到“/”即默认值。无论如何都有这个。
答案 0 :(得分:1)
为了获取applicationContextPath,我们需要从Configuration获取ServerFactory并将其解析为SimpleServerFactory,如下所示:
((SimpleServerFactory) getConfiguration().getServerFactory()).getApplicationContextPath()
答案 1 :(得分:0)
这对我有用:
@Override
public void run(CustomAppConfiguration customAppConfiguration , Environment environment) throws Exception {
DefaultServerFactory factory = (DefaultServerFactory) customAppConfiguration .getServerFactory();
System.out.println("CONTEXT PATH: "+factory.getApplicationContextPath());
...
}
答案 2 :(得分:0)
如果它在您的配置文件中,并且您只想读取config.yml中存在的值,那么我建议您将其作为Configuration class的一部分。无论dropwizard是否在内部以特殊方式使用和处理这些键/值,都可以通过这种方式访问配置中的值。
以下在dropwizard 1.0.0中为我工作:
MyApp.java:
public class MyApp extends Application<MyConfig> {
//...
@Override
public void run(MyConfig configuration, Environment environment) throws Exception {
System.out.println(configuration.contextPath);
//...
MyConfig.java
public class MyConfig extends Configuration {
//...
@JsonProperty("applicationContextPath")
public String contextPath;
//...
答案 3 :(得分:0)
如果我正确理解了您的问题,那么在Dropwizard 版本1.3.8 中可以做什么?如果您使用的是简单服务器(没有 https ),则可以通过以下方式获取applicationContextPath :
server:
type: simple
rootPath: /*
applicationContextPath: /administration
adminContextPath: /admin
connector:
type: http
port: 8080
有关rootPath
的更多信息可以在Dropwizard Configuration Reference中找到。因此,如果您想访问:
/books
(这是GET的值,
POST或您的Resource类方法之一中的类似注释),您可以
输入http://localhost:8080/administration/books
这样的URL http://localhost:8080/admin/metrics
希望有帮助。干杯!