Bartosz Gniado
Bartosz Gniado

Reputation: 73

Liquibase changelog does not exist - ChangeLogParseException

I am trying to use liquibase on startup in my JEE+WildFly app. When launching AS, liquibase throws 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 params are set in 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>

Structure is as below:

enter image description here

Looked through subjects here in SO, db-changelog is in .war package: Unpacked war package

Tried already renaming liquibase.changelog value to WEB-INF/db-changelog.xml and /WEB-INF/db-changelog.xml, still the same.

Upvotes: 0

Views: 2981

Answers (1)

Bartosz Gniado
Bartosz Gniado

Reputation: 73

Already figured it out. Moved db-changelog to main/resources/META-INF and set param to

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

Everything works now:

[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

Upvotes: 1

Related Questions