我正在尝试在我的项目中配置控制台附加程序。当我在本地调试中启动我的应用程序时,它工作正常。然而,当我在 Gradle 中构建我的 jar 并将其作为独立应用程序启动时,我收到以下错误:
[0]; Could not resolve type id 'console' into a subtype of [simple type, class io.dropwizard.logging.AppenderFactory]: known type ids = [AppenderFactory]
Run Code Online (Sandbox Code Playgroud)
这是我的文件的片段.yml:
logging:
appenders:
- type: console
timeZone: UTC
logFormat: '%-5level [%date{ISO8601}] [%X{requestId}] %c: %msg%n%rootException'
Run Code Online (Sandbox Code Playgroud)
我能够找到有关类似问题的帖子。例如,这里的线程建议检查文件是否META-INF/services/io.dropwizard.logging.AppenderFactory在应用程序 jar 中以及其内容是否如下:
io.dropwizard.logging.ConsoleAppenderFactory
io.dropwizard.logging.FileAppenderFactory
io.dropwizard.logging.SyslogAppenderFactory
Run Code Online (Sandbox Code Playgroud)
我已经验证过了。就我而言,文件位于它应该在的位置,并且内容完全相同。任何帮助将不胜感激。
Dropwizard 版本 0.9.2
Gradle 是否会生成 Uber/Fat Jar(一个内部包含所有依赖项的 jar)或仅包含 Dropwizard 应用程序的简单 jar?
建议为 Dropwizard 部署构建 Fat-jar,因此如果您不这样做,请切换到这种样式。
现在,在构建 Fat-Jar 时,您需要执行以下操作来解决您的问题(这在您链接的讨论中提到)
如果您使用 maven-shade 插件来构建 fat jar,请不要忘记 SPI 资源转换器,用于将 SPI 资源收集到 jar 中。
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
Run Code Online (Sandbox Code Playgroud)
要在 Gradle 中执行相同的操作,请查看此讨论。
HTH。
| 归档时间: |
|
| 查看次数: |
1871 次 |
| 最近记录: |