-1

I am trying to create an app with SpringBoot3, Hibernate and Liquibase. For now I have just implemented the liquibase part and wanted to get it working before adding business logic.

The app defines 2 database users:

  1. MY_OWNER to execute the DML
  2. MY_USER to execute synonyms and connect to app

Here is how my code looks:

project structure

src/main/java/com/example/io.akash.sharma.liquibase/LiquibaseApplication.java
src/main/java/com/example/io.akash.sharma.liquibase/config/DataSourceConfig.java
src/main/resources/application.properties
src/main/resources/db/chnagelog/db.changelog-master.xml
src/main/resources/db/chnagelog/changelog-dml.xml
src/main/resources/db/chnagelog/changelog-user.xml

LiquibaseApplication.java

@SpringBootApplication
public class LiquibaseApplication {
    public static void main(String[] args) {
        SpringApplication.run(LiquibaseApplication.class, args);
    }    
}

DataSourceConfig.java

package io.sharma.akash.liquibase.config;

import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import liquibase.integration.spring.SpringLiquibase;

@Configuration
public class DataSourceConfig {

    @Bean(name = "ownerDataSource")
    @ConfigurationProperties(prefix = "spring.liquibase.user")
    public DataSource ownerDataSource() {
        return new DriverManagerDataSource();
    }

    @Bean
    public SpringLiquibase liquibaseSynonym(@Qualifier("ownerDataSource") DataSource dataSource) {
        SpringLiquibase liquibase = new SpringLiquibase();
        liquibase.setDataSource(dataSource);
        liquibase.setChangeLog("classpath:db/changelog/db.changelog-master.xml");
        liquibase.setContexts("dml");
        return liquibase;
    }

    @Primary
    @Bean(name = "userDataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource userDataSource() {
        return new DriverManagerDataSource();
    }

    @Bean
    public SpringLiquibase liquibaseOwner(@Qualifier("userDataSource") DataSource dataSource) {
        SpringLiquibase liquibase = new SpringLiquibase();
        liquibase.setDataSource(dataSource);
        liquibase.setChangeLog("classpath:db/changelog/db.changelog-master.xml");
        liquibase.setContexts("synonyms");
        return liquibase;
    }
}

application.properties

spring.application.name=liquibase

# Application properties for owner user (DML operations)
spring.datasource.url=jdbc:h2:mem:localdb;DB_CLOSE_DELAY=-1;
spring.datasource.username=MY_USER
spring.datasource.password=user
spring.datasource.driver-class-name=org.h2.Driver

# Additional properties for synonym user
spring.liquibase.user.url=jdbc:h2:mem:localdb;DB_CLOSE_DELAY=-1;
spring.liquibase.user.username=MY_OWNER
spring.liquibase.user.password=owner
spring.liquibase.user.driver-class-name=org.h2.Driver

spring.liquibase.enabled=true

spring.h2.console.enabled=true
spring.h2.console.path=/local-db
spring.h2.console.settings.web-allow-others=true

# JPA properties
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=true

# Liquibase properties
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml

db.changelog-master.xml

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">

    <changeSet id="create_schema_owner" author="akash">
        <sql>
            CREATE SCHEMA IF NOT EXISTS MY_OWNER;
        </sql>
    </changeSet>

    <include file="db/changelog/changelog-dml.xml" context="dml"/>
    <include file="db/changelog/changelog-user.xml" context="synonyms"/>
</databaseChangeLog>

changelog-dml.xml

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">

    <changeSet id="create_employee" author="akash" context="dml">
        <createTable tableName="EMPLOYEE" schemaName="MY_OWNER" catalogName="MY_OWNER">
            <column name="id" type="BIGINT">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="name" type="VARCHAR(255)">
                <constraints nullable="false"/>
            </column>
            <column name="department" type="VARCHAR(255)"/>
        </createTable>
    </changeSet>
</databaseChangeLog>

changelog-user.xml

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">

    <changeSet id="create_synonyms" author="akash" context="synonyms">
        <sql>
            CREATE SYNONYM employee FOR MY_OWNER.employee;
        </sql>
    </changeSet>
</databaseChangeLog>

Please help me identify my mistake. I am getting wrong username or password error for h2. Logs shared below:

"C:\Program Files\Java\openjdk17.0.9\bin\java.exe" -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.1\lib\idea_rt.jar=52262:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\sharakaf\KARM_BHOOMI\POCs\liquibase-hibernate-h2\liquibase\target\classes;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\3.3.1\spring-boot-starter-data-jpa-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter-aop\3.3.1\spring-boot-starter-aop-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-aop\6.1.10\spring-aop-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\aspectj\aspectjweaver\1.9.22\aspectjweaver-1.9.22.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\3.3.1\spring-boot-starter-jdbc-3.3.1.jar;C:\Users\sharakaf\.m2\repository\com\zaxxer\HikariCP\5.1.0\HikariCP-5.1.0.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-jdbc\6.1.10\spring-jdbc-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\hibernate\orm\hibernate-core\6.5.2.Final\hibernate-core-6.5.2.Final.jar;C:\Users\sharakaf\.m2\repository\jakarta\persistence\jakarta.persistence-api\3.1.0\jakarta.persistence-api-3.1.0.jar;C:\Users\sharakaf\.m2\repository\jakarta\transaction\jakarta.transaction-api\2.0.1\jakarta.transaction-api-2.0.1.jar;C:\Users\sharakaf\.m2\repository\org\jboss\logging\jboss-logging\3.5.3.Final\jboss-logging-3.5.3.Final.jar;C:\Users\sharakaf\.m2\repository\org\hibernate\common\hibernate-commons-annotations\6.0.6.Final\hibernate-commons-annotations-6.0.6.Final.jar;C:\Users\sharakaf\.m2\repository\io\smallrye\jandex\3.1.2\jandex-3.1.2.jar;C:\Users\sharakaf\.m2\repository\com\fasterxml\classmate\1.7.0\classmate-1.7.0.jar;C:\Users\sharakaf\.m2\repository\net\bytebuddy\byte-buddy\1.14.17\byte-buddy-1.14.17.jar;C:\Users\sharakaf\.m2\repository\org\glassfish\jaxb\jaxb-runtime\4.0.5\jaxb-runtime-4.0.5.jar;C:\Users\sharakaf\.m2\repository\org\glassfish\jaxb\jaxb-core\4.0.5\jaxb-core-4.0.5.jar;C:\Users\sharakaf\.m2\repository\org\eclipse\angus\angus-activation\2.0.2\angus-activation-2.0.2.jar;C:\Users\sharakaf\.m2\repository\org\glassfish\jaxb\txw2\4.0.5\txw2-4.0.5.jar;C:\Users\sharakaf\.m2\repository\com\sun\istack\istack-commons-runtime\4.1.2\istack-commons-runtime-4.1.2.jar;C:\Users\sharakaf\.m2\repository\jakarta\inject\jakarta.inject-api\2.0.1\jakarta.inject-api-2.0.1.jar;C:\Users\sharakaf\.m2\repository\org\antlr\antlr4-runtime\4.13.0\antlr4-runtime-4.13.0.jar;C:\Users\sharakaf\.m2\repository\org\springframework\data\spring-data-jpa\3.3.1\spring-data-jpa-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\data\spring-data-commons\3.3.1\spring-data-commons-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-orm\6.1.10\spring-orm-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-context\6.1.10\spring-context-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-tx\6.1.10\spring-tx-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-beans\6.1.10\spring-beans-6.1.10.jar;C:\Users\sharakaf\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\sharakaf\.m2\repository\org\slf4j\slf4j-api\2.0.13\slf4j-api-2.0.13.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-aspects\6.1.10\spring-aspects-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.3.1\spring-boot-starter-web-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter\3.3.1\spring-boot-starter-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot\3.3.1\spring-boot-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.3.1\spring-boot-autoconfigure-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.3.1\spring-boot-starter-logging-3.3.1.jar;C:\Users\sharakaf\.m2\repository\ch\qos\logback\logback-classic\1.5.6\logback-classic-1.5.6.jar;C:\Users\sharakaf\.m2\repository\ch\qos\logback\logback-core\1.5.6\logback-core-1.5.6.jar;C:\Users\sharakaf\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.23.1\log4j-to-slf4j-2.23.1.jar;C:\Users\sharakaf\.m2\repository\org\apache\logging\log4j\log4j-api\2.23.1\log4j-api-2.23.1.jar;C:\Users\sharakaf\.m2\repository\org\slf4j\jul-to-slf4j\2.0.13\jul-to-slf4j-2.0.13.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.3.1\spring-boot-starter-json-3.3.1.jar;C:\Users\sharakaf\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.17.1\jackson-databind-2.17.1.jar;C:\Users\sharakaf\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.17.1\jackson-annotations-2.17.1.jar;C:\Users\sharakaf\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.17.1\jackson-core-2.17.1.jar;C:\Users\sharakaf\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.17.1\jackson-datatype-jdk8-2.17.1.jar;C:\Users\sharakaf\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.17.1\jackson-datatype-jsr310-2.17.1.jar;C:\Users\sharakaf\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.17.1\jackson-module-parameter-names-2.17.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.3.1\spring-boot-starter-tomcat-3.3.1.jar;C:\Users\sharakaf\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.25\tomcat-embed-core-10.1.25.jar;C:\Users\sharakaf\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.25\tomcat-embed-el-10.1.25.jar;C:\Users\sharakaf\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.25\tomcat-embed-websocket-10.1.25.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-web\6.1.10\spring-web-6.1.10.jar;C:\Users\sharakaf\.m2\repository\io\micrometer\micrometer-observation\1.13.1\micrometer-observation-1.13.1.jar;C:\Users\sharakaf\.m2\repository\io\micrometer\micrometer-commons\1.13.1\micrometer-commons-1.13.1.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-webmvc\6.1.10\spring-webmvc-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-expression\6.1.10\spring-expression-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\liquibase\liquibase-core\4.27.0\liquibase-core-4.27.0.jar;C:\Users\sharakaf\.m2\repository\com\opencsv\opencsv\5.9\opencsv-5.9.jar;C:\Users\sharakaf\.m2\repository\org\apache\commons\commons-text\1.11.0\commons-text-1.11.0.jar;C:\Users\sharakaf\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\sharakaf\.m2\repository\org\yaml\snakeyaml\2.2\snakeyaml-2.2.jar;C:\Users\sharakaf\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\sharakaf\.m2\repository\org\apache\commons\commons-lang3\3.14.0\commons-lang3-3.14.0.jar;C:\Users\sharakaf\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\4.0.2\jakarta.xml.bind-api-4.0.2.jar;C:\Users\sharakaf\.m2\repository\jakarta\activation\jakarta.activation-api\2.1.3\jakarta.activation-api-2.1.3.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-core\6.1.10\spring-core-6.1.10.jar;C:\Users\sharakaf\.m2\repository\org\springframework\spring-jcl\6.1.10\spring-jcl-6.1.10.jar;C:\Users\sharakaf\.m2\repository\com\h2database\h2\2.2.224\h2-2.2.224.jar io.sharma.akash.liquibase.LiquibaseApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.3.1)

2024-07-08T19:29:46.598+05:30  INFO 23936 --- [liquibase] [           main] i.s.a.liquibase.LiquibaseApplication     : Starting LiquibaseApplication using Java 17.0.9 with PID 23936 (C:\Users\sharakaf\KARM_BHOOMI\POCs\liquibase-hibernate-h2\liquibase\target\classes started by sharakaf in C:\Users\sharakaf\KARM_BHOOMI\POCs\liquibase-hibernate-h2\liquibase)
2024-07-08T19:29:46.602+05:30  INFO 23936 --- [liquibase] [           main] i.s.a.liquibase.LiquibaseApplication     : No active profile set, falling back to 1 default profile: "default"
2024-07-08T19:29:47.498+05:30  INFO 23936 --- [liquibase] [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-07-08T19:29:47.526+05:30  INFO 23936 --- [liquibase] [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 14 ms. Found 0 JPA repository interfaces.
2024-07-08T19:29:48.115+05:30  INFO 23936 --- [liquibase] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-07-08T19:29:48.132+05:30  INFO 23936 --- [liquibase] [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-07-08T19:29:48.132+05:30  INFO 23936 --- [liquibase] [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.25]
2024-07-08T19:29:48.221+05:30  INFO 23936 --- [liquibase] [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-07-08T19:29:48.223+05:30  INFO 23936 --- [liquibase] [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1549 ms
2024-07-08T19:29:48.821+05:30  INFO 23936 --- [liquibase] [           main] o.s.b.a.h2.H2ConsoleAutoConfiguration    : H2 console available at '/local-db'. Database available at 'jdbc:h2:mem:localdb'
2024-07-08T19:29:49.306+05:30  INFO 23936 --- [liquibase] [           main] liquibase.database                       : Set default schema name to PUBLIC
2024-07-08T19:29:49.704+05:30  INFO 23936 --- [liquibase] [           main] liquibase.changelog                      : Creating database history table with name: PUBLIC.DATABASECHANGELOG
2024-07-08T19:29:49.850+05:30  INFO 23936 --- [liquibase] [           main] liquibase.changelog                      : Reading from PUBLIC.DATABASECHANGELOG
2024-07-08T19:29:49.916+05:30  INFO 23936 --- [liquibase] [           main] liquibase.lockservice                    : Successfully acquired change log lock
2024-07-08T19:29:49.917+05:30  INFO 23936 --- [liquibase] [           main] liquibase.command                        : Using deploymentId: 0447189916
2024-07-08T19:29:49.919+05:30  INFO 23936 --- [liquibase] [           main] liquibase.changelog                      : Reading from PUBLIC.DATABASECHANGELOG
2024-07-08T19:29:49.938+05:30  INFO 23936 --- [liquibase] [           main] liquibase.ui                             : Running Changeset: db/changelog/db.changelog-master.xml::create_schema_owner::sharakaf
2024-07-08T19:29:49.951+05:30  INFO 23936 --- [liquibase] [           main] liquibase.changelog                      : Custom SQL executed
2024-07-08T19:29:49.952+05:30  INFO 23936 --- [liquibase] [           main] liquibase.changelog                      : ChangeSet db/changelog/db.changelog-master.xml::create_schema_owner::sharakaf ran successfully in 13ms
2024-07-08T19:29:49.961+05:30  INFO 23936 --- [liquibase] [           main] liquibase.ui                             : Running Changeset: db/changelog/changelog-dml.xml::create_employee::sharakaf
2024-07-08T19:29:49.963+05:30  INFO 23936 --- [liquibase] [           main] liquibase.changelog                      : Table EMPLOYEE created
2024-07-08T19:29:49.963+05:30  INFO 23936 --- [liquibase] [           main] liquibase.changelog                      : ChangeSet db/changelog/changelog-dml.xml::create_employee::sharakaf ran successfully in 2ms
2024-07-08T19:29:49.972+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : UPDATE SUMMARY
2024-07-08T19:29:49.972+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : Run:                          2
2024-07-08T19:29:49.972+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : Previously run:               0
2024-07-08T19:29:49.973+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : Filtered out:                 1
2024-07-08T19:29:49.973+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : -------------------------------
2024-07-08T19:29:49.973+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : Total change sets:            3
2024-07-08T19:29:49.973+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : FILTERED CHANGE SETS SUMMARY
2024-07-08T19:29:49.973+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : Context mismatch:             1
2024-07-08T19:29:49.976+05:30  INFO 23936 --- [liquibase] [           main] liquibase.util                           : Update summary generated
2024-07-08T19:29:49.983+05:30  INFO 23936 --- [liquibase] [           main] liquibase.command                        : Update command completed successfully.
2024-07-08T19:29:49.983+05:30  INFO 23936 --- [liquibase] [           main] liquibase.ui                             : Liquibase: Update has been successful. Rows affected: 2
2024-07-08T19:29:49.986+05:30  INFO 23936 --- [liquibase] [           main] liquibase.lockservice                    : Successfully released change log lock
2024-07-08T19:29:49.987+05:30  INFO 23936 --- [liquibase] [           main] liquibase.command                        : Command execution complete
2024-07-08T19:29:50.248+05:30  WARN 23936 --- [liquibase] [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Failed to initialize dependency 'liquibaseOwner' of LoadTimeWeaverAware bean 'entityManagerFactory': Error creating bean with name 'liquibaseOwner' defined in class path resource [io/sharma/akash/liquibase/config/DataSourceConfig.class]: liquibase.exception.DatabaseException: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
2024-07-08T19:29:50.251+05:30  INFO 23936 --- [liquibase] [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2024-07-08T19:29:50.263+05:30  INFO 23936 --- [liquibase] [           main] .s.b.a.l.ConditionEvaluationReportLogger : 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-07-08T19:29:50.288+05:30 ERROR 23936 --- [liquibase] [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Failed to initialize dependency 'liquibaseOwner' of LoadTimeWeaverAware bean 'entityManagerFactory': Error creating bean with name 'liquibaseOwner' defined in class path resource [io/sharma/akash/liquibase/config/DataSourceConfig.class]: liquibase.exception.DatabaseException: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:326) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.1.jar:3.3.1]
    at io.sharma.akash.liquibase.LiquibaseApplication.main(LiquibaseApplication.java:10) ~[classes/:na]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibaseOwner' defined in class path resource [io/sharma/akash/liquibase/config/DataSourceConfig.class]: liquibase.exception.DatabaseException: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313) ~[spring-beans-6.1.10.jar:6.1.10]
    ... 10 common frames omitted
Caused by: liquibase.exception.UnexpectedLiquibaseException: liquibase.exception.DatabaseException: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:259) ~[liquibase-core-4.27.0.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1835) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-6.1.10.jar:6.1.10]
    ... 17 common frames omitted
Caused by: liquibase.exception.DatabaseException: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
    at liquibase.integration.spring.SpringLiquibase.lambda$afterPropertiesSet$0(SpringLiquibase.java:251) ~[liquibase-core-4.27.0.jar:na]
    at liquibase.Scope.lambda$child$0(Scope.java:190) ~[liquibase-core-4.27.0.jar:na]
    at liquibase.Scope.child(Scope.java:199) ~[liquibase-core-4.27.0.jar:na]
    at liquibase.Scope.child(Scope.java:189) ~[liquibase-core-4.27.0.jar:na]
    at liquibase.Scope.child(Scope.java:168) ~[liquibase-core-4.27.0.jar:na]
    at liquibase.Scope.child(Scope.java:256) ~[liquibase-core-4.27.0.jar:na]
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:242) ~[liquibase-core-4.27.0.jar:na]
    ... 19 common frames omitted
Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:522) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.message.DbException.get(DbException.java:223) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.message.DbException.get(DbException.java:199) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.message.DbException.get(DbException.java:188) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.engine.Engine.validateUserAndPassword(Engine.java:396) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.engine.Engine.createSession(Engine.java:206) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125) ~[h2-2.2.224.jar:2.2.224]
    at org.h2.Driver.connect(Driver.java:59) ~[h2-2.2.224.jar:2.2.224]
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681) ~[java.sql:na]
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:190) ~[java.sql:na]
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:155) ~[spring-jdbc-6.1.10.jar:6.1.10]
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:146) ~[spring-jdbc-6.1.10.jar:6.1.10]
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:205) ~[spring-jdbc-6.1.10.jar:6.1.10]
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:169) ~[spring-jdbc-6.1.10.jar:6.1.10]
    at liquibase.integration.spring.SpringLiquibase.lambda$afterPropertiesSet$0(SpringLiquibase.java:246) ~[liquibase-core-4.27.0.jar:na]
    ... 25 common frames omitted


Process finished with exit code 1
2
  • 1
    You are making things overly complex ditch your DataSourceConfig, also H2 in-memory with different users isn't going to work, they share the same user. So not sure what you are trying to achieve here. Next to that why the synonym as it points to the same named table?
    – M. Deinum
    Commented Jul 8 at 14:57
  • didn't look odd to you that you are trying to access a database with a user that was not defined anywhere? Also the previous comment is right about H2 user support. Commented Jul 8 at 15:59

0

Browse other questions tagged or ask your own question.