问题描述
我在运行liquibase:diff maven目标时遇到了此异常UnmarshalException,我正在使用休眠5.4.10-Final
pom.xml
中的插件:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>4.0.0</version>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>3.0.0-M4</version>
</dependency>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>3.6</version>
</dependency>
</dependencies>
<configuration>
<propertyFile>src/main/resources/liquibase/liquibase.properties</propertyFile>
</configuration>
</plugin>
我的liquibase.properties
文件:
> url=jdbc:MysqL://localhost:3306/anotherone?useSSL=false username=root
> password=root driver=com.MysqL.cj.jdbc.Driver
> diffChangeLogFile=src/main/resources/db/DataSource.xml
> changeLogFile=src/main/resources/db/DataSource.xml
> referenceUrl=hibernate:ejb3:Model?
> hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovednamingStrategy
我的persistence.xml
文件:
` <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">`
<persistence-unit name="Model" transaction-type="JTA">
<description>JTA persistence unit related to the datasource DataSource</description>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>MyProject_Model</jta-data-source>
<mapping-file>Student-ORM.xml</mapping-file>
<mapping-file>Subject-DataSource-ORM.xml</mapping-file>
<mapping-file>Time-DataSource-ORM.xml</mapping-file>
<mapping-file>Others-ORM.xml</mapping-file>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<validation-mode>NONE</validation-mode>
<properties>
<property name="hibernate.ejb.cfgfile" value="hibernate_Model.cfg.xml"/>
</properties>
</persistence-unit>
</persistence>
我的hibernate_Model.cfg.xml
文件
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Echo the sql to stdout -->
<property name="show_sql">true</property>
<!-- Set the current session context -->
<property name="current_session_context_class">thread</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create-drop</property>
<!-- dbcp connection pool configuration -->
<property name="hibernate.dbcp.initialSize">5</property>
<property name="hibernate.dbcp.maxTotal">20</property>
<property name="hibernate.dbcp.maxIdle">10</property>
<property name="hibernate.dbcp.minIdle">5</property>
<property name="hibernate.dbcp.maxWaitMillis">-1</property>
<mapping class="net.javaguides.hibernate.entity.Student" />
</session-factory>
</hibernate-configuration>
运行diff目标时遇到的异常:
Caused by: org.hibernate.internal.util.config.ConfigurationException: Unable to perform unmarshalling at line number -1 and column -1 in RESOURCE hibernate_Model.cfg.xml. Message: unexpected element (uri:"http://www.hibernate.org/xsd/orm/cfg",local:"hibernate-configuration"). Expected elements are <{}hibernate-configuration>
at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:133)
at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65)
at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:57)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.mergeSettings(EntityManagerFactoryBuilderImpl.java:481)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:203)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:174)
at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171)
at liquibase.ext.hibernate.database.HibernateEjb3Database$MyHibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernateEjb3Database.java:169)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:66)
at liquibase.ext.hibernate.database.HibernateEjb3Database$MyHibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernateEjb3Database.java:158)
at liquibase.ext.hibernate.database.HibernateEjb3Database.createEntityManagerFactoryBuilder(HibernateEjb3Database.java:85)
at liquibase.ext.hibernate.database.HibernateEjb3Database.buildMetadataFromPath(HibernateEjb3Database.java:57)
at liquibase.ext.hibernate.database.HibernateDatabase.buildMetadata(HibernateDatabase.java:143)
at liquibase.ext.hibernate.database.HibernateDatabase.setConnection(HibernateDatabase.java:83)
at liquibase.database.DatabaseFactory.findCorrectDatabaseImplementation(DatabaseFactory.java:120)
at liquibase.database.DatabaseFactory.openDatabase(DatabaseFactory.java:140)
at liquibase.integration.commandline.CommandLineUtils.createDatabaSEObject(CommandLineUtils.java:92)
... 30 more Caused by: javax.xml.bind.UnmarshalException
- with linked exception: [com.sun.istack.SAXParseException2; unexpected element (uri:"http://www.hibernate.org/xsd/orm/cfg",local:"hibernate-configuration"). Expected elements are <{}hibernate-configuration>]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)