【问题标题】:Liquibase changelog does not exist - ChangeLogParseExceptionLiquibase 更改日志不存在 - ChangeLogParseException
【发布时间】:2018-05-27 07:55:17
【问题描述】:

我正在尝试在我的 JEE+WildFly 应用程序中启动时使用 liquibase。 启动 AS 时,liquibase 抛出 ChangeLogParseException:

09:41:40,602 ERROR [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0021: Deploy of deployment "bets.war" was rolled back with the following failure message: 
{
    "WFLYCTL0080: Failed services" => {"jboss.undertow.deployment.default-server.default-host./bets" => "java.lang.RuntimeException: java.lang.RuntimeException: liquibase.exception.ChangeLogParseException: :classpath/WEB-INF/db-changelog.xml does not exist
    Caused by: java.lang.RuntimeException: java.lang.RuntimeException: liquibase.exception.ChangeLogParseException: :classpath/WEB-INF/db-changelog.xml does not exist
    Caused by: java.lang.RuntimeException: liquibase.exception.ChangeLogParseException: :classpath/WEB-INF/db-changelog.xml does not exist
    Caused by: liquibase.exception.ChangeLogParseException: :classpath/WEB-INF/db-changelog.xml does not exist"},

Liquibase 参数在 web.xml 中设置:

<!-- liquibase auto startup -->

<context-param>
    <param-name>liquibase.changelog</param-name>
    <param-value>:classpath/WEB-INF/db-changelog.xml</param-value>
</context-param>

<context-param>
    <param-name>liquibase.datasource</param-name>
    <param-value>java:jboss/datasources/BetsDS</param-value>
</context-param>

<context-param>
    <param-name>liquibase.onerror.fail</param-name>
    <param-value>true</param-value>
</context-param>

<context-param>
    <param-name>liquibase.contexts</param-name>
    <param-value>production</param-value>
</context-param>

<listener>
    <listener-class>liquibase.integration.servlet.LiquibaseServletListener</listener-class>
</listener>

结构如下:

查看这里的主题,db-changelog 在 .war 包中:

已经尝试将 liquibase.changelog 的值重命名为 WEB-INF/db-changelog.xml 和 /WEB-INF/db-changelog.xml,还是一样。

【问题讨论】:

  • 如何调用 Liquibase 并在代码中设置变更日志路径?
  • 帖子已编辑
  • liquibase.changelog 参数的值应为WEB-INF/db-changelog.xml/WEB-INF/db-changelog.xml
  • 这两种方式也是错误的。已经试过了。

标签: java maven jakarta-ee liquibase liquibase-hibernate


【解决方案1】:

已经想通了。 将 db-changelog 移至 main/resources/META-INF 并将参数设置为

<param-value>META-INF/db-changelog.xml</param-value>

现在一切正常:

[2018-05-27 11:27:42,823] Artifact bets:war: Artifact is deployed successfully
[2018-05-27 11:27:42,823] Artifact bets:war: Deploy took 13 582 milliseconds

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2020-02-12
    • 2015-01-27
    • 2021-11-30
    • 2013-09-29
    • 2023-04-03
    • 2021-10-10
    相关资源
    最近更新 更多