首页 > 解决方案 > 运行 Seedstack 应用程序时出现异常

问题描述

我使用了 Hibernate 和 JPA 的种子堆栈依赖项来创建对数据库执行 crud 操作的 DAO 服务。我正在尝试通过 SeedMain 类在 Eclipse 中通过 Java 应用程序启动器启动此 Seedstack 应用程序模块。

In pom.xml  - dependecy for undertow is given.
    <dependency>
        <groupId>org.seedstack.seed</groupId>
        <artifactId>seed-web-undertow</artifactId>
    </dependency>

When executing the SeedMain class, I am getting the below error snakeyaml error:-
Exception in thread "main" java.lang.NoSuchMethodError: org.yaml.snakeyaml.DumperOptions.setSplitLines(Z)V
   at com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.buildDumperOptions(YAMLGenerator.java:259)
   at com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.<init>(YAMLGenerator.java:232)
   at com.fasterxml.jackson.dataformat.yaml.YAMLFactory._createGenerator(YAMLFactory.java:447)
   at com.fasterxml.jackson.dataformat.yaml.YAMLFactory.createGenerator(YAMLFactory.java:397)
   at org.seedstack.seed.core.internal.diagnostic.DefaultDiagnosticReporter.writeDiagnosticReport(DefaultDiagnosticReporter.java:75)
   at org.seedstack.seed.core.internal.diagnostic.DefaultDiagnosticReporter.writeDiagnosticReport(DefaultDiagnosticReporter.java:67)
   at org.seedstack.seed.core.internal.diagnostic.DiagnosticManagerImpl.dumpDiagnosticReport(DiagnosticManagerImpl.java:70)
   at org.seedstack.seed.core.SeedMain.handleException(SeedMain.java:68)
   at org.seedstack.seed.core.SeedMain.main(SeedMain.java:61)

根据我的理解,错误是由于snakeyaml 的某些版本不一致,但是对于Seedstack,因为依赖项的版本由seedstack-bom 依赖项解决,所以我应该在哪里进行更改以解决错误。

提前致谢!

标签: seedstack

解决方案


通过阅读堆栈跟踪,您似乎在启动时遇到了一些由该handleException()方法处理的错误。然后,此方法尝试编写 YAML 诊断报告,但最终由于您提到的 snakeyaml 版本问题而失败。

你应该做两件事:

  • 通过查看依赖关系树来修复 snakeyaml 依赖关系问题。此类问题通常是由于某些库导致 Maven 选择了旧版本。SeedStack 至少需要jackson-dataformat-yaml2.9.4 版本,而后者又需要至少snakeyaml1.18。
  • 通过查看完整的堆栈跟踪来修复另一个错误。当无法写入诊断报告时,原始异常仍会打印在控制台上(在 stderr 上)。

推荐阅读