查看DropWizard的文档,您所调用的方法均未引发任何异常。我敢说您调用的方法之一是处理抛出的错误,因此它不会向上传播到catch块。希望这会有所帮助。
,
在评论后添加:
在哪里捕获异常?
at io.dropwizard.cli.Cli.run(Cli.java:78)
给了我们答案。
可以怎样实现目标:
release notes which are a long read中有PR №2260。这似乎正在解决上述问题:应用配置之前,在引导阶段以JSON格式登录。
这取决于是否配置dropwizard
的日志并将其传输到ELK堆栈,它是否有用。如果使用本地日志文件,则应将StdErr和StdOut重定向到该文件。然后LogStash
应该能够处理它们。如果使用一些直接的网络传输-我不知道。
第二次修改:
还有check
command。用于验证配置设置。因此,它可以集成在部署工具链中的某处,以验证要部署的配置。
~/source/dropwizard-static$ java -jar target/dropwizard-static-1.0-SNAPSHOT.jar check config1.yml
config1.yml has an error:
* Unrecognized field at: loging
Did you mean?:
- logging
- assets
- server
- metrics
- httpClient
[1 more]
~/source/dropwizard-static$ java -jar target/dropwizard-static-1.0-SNAPSHOT.jar
usage: java -jar dropwizard-static-1.0-SNAPSHOT.jar
[-h] [-v] {server,check} ...
positional arguments:
{server,check} available commands
named arguments:
-h,--help show this help message and exit
-v,--version show the application version and exit
原始答案如下:
我有一个玩具dropwizard
项目here。当我尝试以损坏的配置启动它时:
#logging:
loging:
level: INFO
# level: DEBUG
loggers:
com.gitlab.zloster: DEBUG
我得到以下信息:
~/source/dropwizard-static$ java -jar target/dropwizard-static-1.0-SNAPSHOT.jar server config1.yml
io.dropwizard.configuration.ConfigurationParsingException: config1.yml has an error:
* Unrecognized field at: loging
Did you mean?:
- logging
- assets
- server
- metrics
- httpClient
[1 more]
at io.dropwizard.configuration.ConfigurationParsingException$Builder.build(ConfigurationParsingException.java:279)
at io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:140)
at io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:89)
at io.dropwizard.cli.ConfiguredCommand.parseConfiguration(ConfiguredCommand.java:126)
at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:74)
at io.dropwizard.cli.Cli.run(Cli.java:78)
at io.dropwizard.Application.run(Application.java:93)
at com.gitlab.zloster.ServeStaticApplication.main(ServeStaticApplication.java:21)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "loging" (class com.gitlab.zloster.ServeStaticApplicationConfiguration),not marked as ignorable (6 known properties: "assets","viewRendererConfiguration","logging","httpClient","server","metrics"])
at [Source: UNKNOWN; line: -1,column: -1] (through reference chain: com.gitlab.zloster.ServeStaticApplicationConfiguration["loging"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:60)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:822)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1152)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1589)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1567)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:258)
at com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer.deserialize(SuperSonicBeanDeserializer.java:155)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3984)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2276)
at io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:127)
... 6 more
在我看来,该异常已正确记录*。
*这当然取决于“正确记录”的定义。
您可以按照第一个堆栈跟踪中的类(在Caused by:
之前)检查它的工作方式。如果您没有看到记录的异常,则意味着您必须检查您的记录配置,以及是否将标准IO流重定向到某个地方。
本文链接:https://www.f2er.com/3148135.html