Java Hibernate无法执行解组
当我运行liquibase:diff-maven-goal时,我得到了这个异常UnmarshalException,我使用的是hibernate 5.4.10-FinalJava Hibernate无法执行解组,java,hibernate,jpa,liquibase,Java,Hibernate,Jpa,Liquibase,当我运行liquibase:diff-maven-goal时,我得到了这个异常UnmarshalException,我使用的是hibernate 5.4.10-Final pom.xml中的插件: <plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>4.0.0</versio
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>
我的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>
我运行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>]
原因:org.hibernate.internal.util.config.ConfigurationException:无法在资源hibernate_Model.cfg.xml中的第1行和第1列执行解组。消息:意外元素(uri:)http://www.hibernate.org/xsd/orm/cfg,本地:“休眠配置”)。预期的要素是
位于org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:133)
位于org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65)
位于org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:57)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.mergeSettings(EntityManagerFactoryBuilderImpl.java:481)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl。(EntityManagerFactoryBuilderImpl.java:203)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl。(EntityManagerFactoryBuilderImpl.java:174)
位于org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76)
位于org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171)
位于liquibase.ext.hibernate.database.HibernateEjb3Database$MyHibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernateEjb3Database.java:169)
在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119)
在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:66)
位于liquibase.ext.hibernate.database.HibernateEjb3Database$MyHibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernateEjb3Database.java:158)
位于liquibase.ext.hibernate.database.HibernateEjb3Database.createEntityManagerFactoryBuilder(HibernateEjb3Database.java:85)
位于liquibase.ext.hibernate.database.HibernateEjb3Database.buildMetadataFromPath(HibernateEjb3Database.java:57)
位于liquibase.ext.hibernate.database.HibernateDatabase.buildMetadata(HibernateDatabase.java:143)
位于liquibase.ext.hibernate.database.HibernateDatabase.setConnection(HibernateDatabase.java:83)
位于liquibase.database.DatabaseFactory.findCorrectDatabaseImplementation(DatabaseFactory.java:120)
位于liquibase.database.DatabaseFactory.openDatabase(DatabaseFactory.java:140)
位于liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(CommandLineUtils.java:92)
... 30多个原因:javax.xml.bind.UnmarshalException
-带链接的异常:[com.sun.istack.SAXParseException2;意外元素(uri:)http://www.hibernate.org/xsd/orm/cfg,本地:“hibernate配置”)。预期元素为]
尝试诊断这是否是hibernate vs.liquibase的问题。你能在命令行上运行liquibase吗?liquibase diff.错误看起来像是在hibernate_Model.cfg.xml中,可能是配置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>
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>]