Idea 启动 tomcat 报错

报错为

org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: org.apache.catalina.LifecycleException: 无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]

我这边往下翻发现

Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.

BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]:

Bean instantiation via factory method failed; nested exception is org.springframework.beans

由于pom.xml中添加了jpa依赖,所以需要加载datasource,手动在application.properties中添加datasouce相关信息即可

例如

#spring.datasource.url=jdbc:mysql://bj-cdb-nivnaury.sql.tencentcdb.com:****/lianmai?autoReconnect=true&useSSL=FALSE
#spring.datasource.username=lyc
#spring.datasource.password=****
#spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
## Specify the DBMS
#spring.jpa.database = MYSQL
## Show or not log for each sql query
#spring.jpa.show-sql = true
## Hibernate ddl auto (create, create-drop, update)
#spring.jpa.hibernate.ddl-auto = update
## Naming strategy
#spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
## stripped before adding them to the entity manager)
#spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

再次启动tomcat,正常启动

之后再次报错

nested exception is liquibase.exception.ChangeLogParseException: Error parsing classpath:/db/changelog/db.changelog-master.yaml

原因在于没有liquibase的配置文件,所以我们自定义配置文件,在pom.xml中添加

<plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <configuration>
        <propertyFile>src/main/resources/liquibase.properties</propertyFile>
    </configuration>
</plugin>

然后mvn clean下,再install,然后重新build整个project

此时liquibase-mave-plugin报红,需要在build内添加一个 pluginManagement 标签

红色消失

然后启动tomcat又报同样的错,只好在配置文件当前目录下新建文件 db.changelog-master.yaml

最后tomcat成功启动 T T

论读书
睁开眼,书在面前
闭上眼,书在心里
原文地址:https://www.cnblogs.com/YC-L/p/14300231.html