Kar*_*jal 3 java java-ee dropwizard
我已经构建了一个类和配置文件的jar文件.configuration.yml文件位于jar的根目录中.当我尝试使用以下命令运行应用程序时:
java -jar target/drop-wizard-0.0.1-SNAPSHOT.jar server configuration.yml
Run Code Online (Sandbox Code Playgroud)
我在下面得到了例外.如何从命令提示符指定位于jar中的文件?
Exception in thread "main" java.io.FileNotFoundException: File configuration.yml not found <br>
at io.dropwizard.configuration.FileConfigurationSourceProvider.open(FileConfigurationSourceProvider.java:14)<br>
at io.dropwizard.configuration.ConfigurationFactory.build(ConfigurationFactory.java:75)<br>
at io.dropwizard.cli.ConfiguredCommand.parseConfiguration(ConfiguredCommand.java:114)<br>
at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:63)<br>
at io.dropwizard.cli.Cli.run(Cli.java:70)<br>
at io.dropwizard.Application.run(Application.java:72)<br>
at com.flightnetwork.dropwizard.example.HelloWorldApplication.main(HelloWorldApplication.java:10)<br>
Run Code Online (Sandbox Code Playgroud)
v.l*_*nev 10
从Dropwizard 0.9.1版本开始,可以从类路径加载yaml文件.
只需Application以ResourceConfigurationSourceProvider类似的方式配置:
public class MicroUsersApplication extends Application<MicroUsersConfiguration> {
@Override
public void initialize(Bootstrap<MicroUsersConfiguration> bootstrap) {
bootstrap.setConfigurationSourceProvider(
new ResourceConfigurationSourceProvider());
}
}
Run Code Online (Sandbox Code Playgroud)
而对于configuration.ymljar的根:
java -jar target/drop-wizard-0.0.1-SNAPSHOT.jar server configuration.yml
Run Code Online (Sandbox Code Playgroud)
对于configuration.yml在/com/some/configuration.yml从罐中根
java -jar target/drop-wizard-0.0.1-SNAPSHOT.jar server com/some/configuration.yml
Run Code Online (Sandbox Code Playgroud)
请注意 - /路径中没有领先者com/some/configuration.yml.看起来,这种行为将一直保持到1.1.0版本:修复#1640:ResourceConfigurationSourceProvider - 以更复杂的方式处理资源的路径.
如果你使用更新的Dropwizard版本,你可以实现自己的ResourceConfigurationSourceProvider- 它非常简单.
| 归档时间: |
|
| 查看次数: |
8695 次 |
| 最近记录: |