Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Liquibase Hibernate插件不工作_Java_Hibernate_Liquibase_Liquibase Hibernate - Fatal编程技术网

Java Liquibase Hibernate插件不工作

Java Liquibase Hibernate插件不工作,java,hibernate,liquibase,liquibase-hibernate,Java,Hibernate,Liquibase,Liquibase Hibernate,如本文所述()我在使liquibase hibernate扩展正常工作时遇到了一个问题。我想我已经准备好了一切,但似乎我一直遇到奇怪的问题。我觉得我遗漏了一些简单的东西,但我认为我已经按照提供的所有说明进行了操作 我正在使用liquibase 3.3.2、Hibernate 4.3.0.Final、java 1.7.0_71和liquibase-hibernate4-3.5.jar。我的CLASSPATH环境变量是空的,但是一些东西通过liquibase shell脚本添加到它中。当我使用普通的

如本文所述()我在使liquibase hibernate扩展正常工作时遇到了一个问题。我想我已经准备好了一切,但似乎我一直遇到奇怪的问题。我觉得我遗漏了一些简单的东西,但我认为我已经按照提供的所有说明进行了操作

我正在使用liquibase 3.3.2、Hibernate 4.3.0.Final、java 1.7.0_71和liquibase-hibernate4-3.5.jar。我的CLASSPATH环境变量是空的,但是一些东西通过liquibase shell脚本添加到它中。当我使用普通的liquibase命令交互时,我从$liquibase_HOME/lib/目录中删除了扩展名,但没有扩展名,它工作得很好。我在启用调试输出的情况下重新运行这些命令,以提供更多信息

$ echo $CLASSPATH


$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

$ liquibase --version
Liquibase Version: 3.3.2

$ liquibase diffChangeLog
//The below is the stuff liquibase is adding to my classpath
.:/c/repos/ServeDirtyLibsInJava/liquibaseLib/liquibase.jar:/c/repos/ServeDirtyLibsInJava/liquibaseLib/lib/liquibase-hibernate4-3.5.jar:/c/repos/ServeDirtyLibsInJava/liquibaseLib/lib/snakeyaml-1.13.jar
WARNING 1/19/15 12:42 AM: liquibase: Can not use class liquibase.ext.hibernate.database.HibernateEjb3Database as a Liquibase service because org.hibernate.dialect.Dialect is not in the classpath
WARNING 1/19/15 12:42 AM: liquibase: Can not use class liquibase.ext.hibernate.database.HibernateSpringDatabase as a Liquibase service because org.hibernate.dialect.Dialect is not in the classpath
WARNING 1/19/15 12:42 AM: liquibase: Can not use class liquibase.ext.hibernate.database.HibernateClassicDatabase as a Liquibase service because org.hibernate.dialect.Dialect is not in the classpath
DEBUG 1/19/15 10:20 AM: liquibase: Connected to root@localhost@jdbc:mysql://localhost:3306/dirtylibs
DEBUG 1/19/15 10:20 AM: liquibase: Setting auto commit to false from true
Unexpected error running Liquibase: java.lang.RuntimeException: Cannot find database driver: Driver class was not specified and could not be determined from the url (hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialect=org.hibernate.dialect.MySQL5Dialect)

SEVERE 1/19/15 10:20 AM: liquibase: java.lang.RuntimeException: Cannot find database driver: Driver class was not specified and could not be determined from the url (hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialect=org.hibernate.dialect.MySQL5Dialect)
liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: java.lang.RuntimeException: Cannot find database driver: Driver class was not specified and could not be determined from the url (hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialect=org.hibernate.dialec
t.MySQL5Dialect)
        at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(CommandLineUtils.java:69)
        at liquibase.integration.commandline.Main.createReferenceDatabaseFromCommandParams(Main.java:1169)
        at liquibase.integration.commandline.Main.doMigration(Main.java:936)
        at liquibase.integration.commandline.Main.run(Main.java:175)
        at liquibase.integration.commandline.Main.main(Main.java:94)
Caused by: liquibase.exception.DatabaseException: java.lang.RuntimeException: Cannot find database driver: Driver class was not specified and could not be determined from the url (hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialect=org.hibernate.dialect.MySQL5Dialect)
        at liquibase.database.DatabaseFactory.openConnection(DatabaseFactory.java:239)
        at liquibase.database.DatabaseFactory.openDatabase(DatabaseFactory.java:143)
        at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(CommandLineUtils.java:50)
        ... 4 more
Caused by: java.lang.RuntimeException: Cannot find database driver: Driver class was not specified and could not be determined from the url (hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialect=org.hibernate.dialect.MySQL5Dialect)
        at liquibase.database.DatabaseFactory.openConnection(DatabaseFactory.java:191)
        ... 6 more
我的liquibase.properties文件

driver=com.mysql.jdbc.Driver
classpath=mysql-connector-java-5.1.6.jar
url=jdbc:mysql://localhost:3306/dirtylibs
username=root
password=password
changeLogFile=changelog.xml
#referenceDriver=liquibase.ext.hibernate.database.connection.HibernateDriver
referenceUrl=hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialect=org.hibernate.dialect.MySQL5Dialect
referenceUsername=root
referencePassword=password
如果我取消我的referenceDriver的注释,我会得到这个。这里有我遗漏的东西吗?我认为我已经具备了所有必需的依赖项,我不确定这是否是早期问题的某种表现,即扩展无法正确加载内容

$ liquibase diffChangeLog
WARNING 1/19/15 12:49 AM: liquibase: Can not use class liquibase.ext.hibernate.database.HibernateEjb3Database as a Liquibase service because org.hibernate.dialect.Dialect is not in the classpath
WARNING 1/19/15 12:49 AM: liquibase: Can not use class liquibase.ext.hibernate.database.HibernateSpringDatabase as a Liquibase service because org.hibernate.dialect.Dialect is not in the classpath
WARNING 1/19/15 12:49 AM: liquibase: Can not use class liquibase.ext.hibernate.database.HibernateClassicDatabase as a Liquibase service because org.hibernate.dialect.Dialect is not in the classpath
WARNING 1/19/15 12:49 AM: liquibase: Can not use class liquibase.ext.hibernate.snapshot.SequenceSnapshotGenerator as a Liquibase service because org.hibernate.id.factory.IdentifierGeneratorFactory is not in the classpath
WARNING 1/19/15 12:49 AM: liquibase: Can not use class liquibase.ext.hibernate.snapshot.TableSnapshotGenerator as a Liquibase service because org.hibernate.id.factory.IdentifierGeneratorFactory is not in the classpath
Unexpected error running Liquibase: org.hibernate.sql.Alias
SEVERE 1/19/15 10:22 AM: liquibase: org.hibernate.sql.Alias
java.lang.NoClassDefFoundError: org/hibernate/sql/Alias
        at liquibase.ext.hibernate.snapshot.PrimaryKeySnapshotGenerator.<clinit>(PrimaryKeySnapshotGenerator.java:27)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at liquibase.snapshot.SnapshotGeneratorFactory.<init>(SnapshotGeneratorFactory.java:29)
        at liquibase.snapshot.SnapshotGeneratorFactory.getInstance(SnapshotGeneratorFactory.java:43)
        at liquibase.snapshot.SnapshotControl.addType(SnapshotControl.java:95)
        at liquibase.snapshot.SnapshotControl.setTypes(SnapshotControl.java:88)
        at liquibase.snapshot.SnapshotControl.<init>(SnapshotControl.java:25)
        at liquibase.command.DiffCommand.createReferenceSnapshot(DiffCommand.java:185)
        at liquibase.command.DiffCommand.createDiffResult(DiffCommand.java:140)
        at liquibase.command.DiffToChangeLogCommand.run(DiffToChangeLogCommand.java:51)
        at liquibase.command.AbstractCommand.execute(AbstractCommand.java:8)
        at liquibase.integration.commandline.CommandLineUtils.doDiffToChangeLog(CommandLineUtils.java:121)
        at liquibase.integration.commandline.Main.doMigration(Main.java:936)
        at liquibase.integration.commandline.Main.run(Main.java:175)
        at liquibase.integration.commandline.Main.main(Main.java:94)
Caused by: java.lang.ClassNotFoundException: org.hibernate.sql.Alias
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 18 more
$liquibase diffChangeLog
警告1/19/15 12:49 AM:liquibase:无法将类liquibase.ext.hibernate.database.HibernateEjb3Database用作liquibase服务,因为org.hibernate.dial.dial不在类路径中
警告1/19/15 12:49 AM:liquibase:无法将类liquibase.ext.hibernate.database.hibernateStringDatabase用作liquibase服务,因为org.hibernate.dial.dial不在类路径中
警告1/19/15 12:49 AM:liquibase:无法将类liquibase.ext.hibernate.database.HibernateClassicDatabase用作liquibase服务,因为org.hibernate.dial.dial不在类路径中
警告1/19/15 12:49 AM:liquibase:无法将类liquibase.ext.hibernate.snapshot.SequenceSnapshotGenerator用作liquibase服务,因为org.hibernate.id.factory.IdentifierGeneratorFactory不在类路径中
警告1/19/15 12:49 AM:liquibase:无法将类liquibase.ext.hibernate.snapshot.TableSnapshotGenerator用作liquibase服务,因为org.hibernate.id.factory.IdentifierGeneratorFactory不在类路径中
运行Liquibase时出现意外错误:org.hibernate.sql.Alias
严重1/19/15上午10:22:liquibase:org.hibernate.sql.Alias
java.lang.NoClassDefFoundError:org/hibernate/sql/Alias
位于liquibase.ext.hibernate.snapshot.PrimaryKeySnapshotGenerator。(PrimaryKeySnapshotGenerator.java:27)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于liquibase.snapshot.SnapshotGeneratorFactory。(SnapshotGeneratorFactory.java:29)
位于liquibase.snapshot.SnapshotGeneratorFactory.getInstance(SnapshotGeneratorFactory.java:43)
位于liquibase.snapshot.SnapshotControl.addType(SnapshotControl.java:95)
位于liquibase.snapshot.SnapshotControl.setTypes(SnapshotControl.java:88)
SnapshotControl.(SnapshotControl.java:25)
在liquibase.command.DiffCommand.CreateReferencesSnapshot(DiffCommand.java:185)中
在liquibase.command.DiffCommand.createDiffResult(DiffCommand.java:140)中
在liquibase.command.DiffToChangeLogCommand.run处(DiffToChangeLogCommand.java:51)
在liquibase.command.AbstractCommand.execute(AbstractCommand.java:8)
位于liquibase.integration.commandline.CommandLineUtils.doDiffToChangeLog(CommandLineUtils.java:121)
位于liquibase.integration.commandline.Main.doMigration(Main.java:936)
位于liquibase.integration.commandline.Main.run(Main.java:175)
位于liquibase.integration.commandline.Main.Main(Main.java:94)
原因:java.lang.ClassNotFoundException:org.hibernate.sql.Alias
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 还有18个
将hibernate jar添加到liquibase/lib文件夹后(这确实是错误的),错误变成了这样。我试着恢复到插件的旧版本(同时也降低了liquibase的等级),但没有任何帮助

$ liquibase --logLevel=DEBUG diffChangeLog
.:/c/repos/ServeDirtyLibsInJava/liquibaseLib/liquibase.jar:/c/repos/ServeDirtyLibsInJava/liquibaseLib/lib/hibernate-core-4.3.0.Final.jar:/c/repos/ServeDirtyLibsInJava/liquibaseLib/lib/liquibase-hibernate4-3.5.jar:/c/repos/ServeDirtyLibsInJava/liquibaseLib/lib/snakeyaml-1.13.jar
WARNING 1/19/15 10:38 AM: liquibase: Can not use class liquibase.ext.hibernate.database.HibernateSpringDatabase as a Liquibase service because org.springframework.beans.factory.support.BeanDefinitionRegistry is not in the classpath
DEBUG 1/19/15 10:38 AM: liquibase: Connected to root@localhost@jdbc:mysql://localhost:3306/dirtylibs
DEBUG 1/19/15 10:38 AM: liquibase: Setting auto commit to false from true
WARNING 1/19/15 10:38 AM: liquibase: Unknown database: Hibernate
DEBUG 1/19/15 10:38 AM: liquibase: Connected to null@hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialect=org.hibernate.dialect.MySQL5Dialect
DEBUG 1/19/15 10:38 AM: liquibase: Not adjusting the auto commit mode; it is already false
INFO 1/19/15 10:38 AM: liquibase: Error getting default schema
java.lang.NullPointerException
        at liquibase.executor.jvm.JdbcExecutor$QueryCallableStatementCallback.doInCallableStatement(JdbcExecutor.java:383)
        at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:96)
        at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:132)
        at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:143)
        at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:151)
        at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:166)
        at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:161)
        at liquibase.database.AbstractJdbcDatabase.getConnectionSchemaName(AbstractJdbcDatabase.java:318)
        at liquibase.database.AbstractJdbcDatabase.getDefaultSchemaName(AbstractJdbcDatabase.java:301)
        at liquibase.CatalogAndSchema.customize(CatalogAndSchema.java:132)
        at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:116)
        at liquibase.command.DiffCommand.createReferenceSnapshot(DiffCommand.java:190)
        at liquibase.command.DiffCommand.createDiffResult(DiffCommand.java:140)
        at liquibase.command.DiffToChangeLogCommand.run(DiffToChangeLogCommand.java:51)
        at liquibase.command.AbstractCommand.execute(AbstractCommand.java:8)
        at liquibase.integration.commandline.CommandLineUtils.doDiffToChangeLog(CommandLineUtils.java:121)
        at liquibase.integration.commandline.Main.doMigration(Main.java:936)
        at liquibase.integration.commandline.Main.run(Main.java:175)
        at liquibase.integration.commandline.Main.main(Main.java:94)
DEBUG 1/19/15 10:38 AM: liquibase: Computed checksum for 1421681927678 as b60efdd1567f2fd4e5407a8d157cb0b6
Unexpected error running Liquibase: java.lang.NullPointerException

SEVERE 1/19/15 10:38 AM: liquibase: java.lang.NullPointerException
liquibase.exception.LiquibaseException: liquibase.command.CommandExecutionException: java.lang.NullPointerException
        at liquibase.integration.commandline.CommandLineUtils.doDiffToChangeLog(CommandLineUtils.java:123)
        at liquibase.integration.commandline.Main.doMigration(Main.java:936)
        at liquibase.integration.commandline.Main.run(Main.java:175)
        at liquibase.integration.commandline.Main.main(Main.java:94)
Caused by: liquibase.command.CommandExecutionException: java.lang.NullPointerException
        at liquibase.command.AbstractCommand.execute(AbstractCommand.java:13)
        at liquibase.integration.commandline.CommandLineUtils.doDiffToChangeLog(CommandLineUtils.java:121)
        ... 3 more
Caused by: java.lang.NullPointerException
        at liquibase.snapshot.jvm.CatalogSnapshotGenerator.getDatabaseCatalogNames(CatalogSnapshotGenerator.java:82)
        at liquibase.snapshot.jvm.CatalogSnapshotGenerator.snapshotObject(CatalogSnapshotGenerator.java:41)
        at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot(JdbcSnapshotGenerator.java:60)
        at liquibase.snapshot.SnapshotGeneratorChain.snapshot(SnapshotGeneratorChain.java:50)
        at liquibase.snapshot.DatabaseSnapshot.include(DatabaseSnapshot.java:163)
        at liquibase.snapshot.DatabaseSnapshot.init(DatabaseSnapshot.java:55)
        at liquibase.snapshot.DatabaseSnapshot.<init>(DatabaseSnapshot.java:37)
        at liquibase.snapshot.JdbcDatabaseSnapshot.<init>(JdbcDatabaseSnapshot.java:25)
        at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:126)
        at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:119)
        at liquibase.command.DiffCommand.createReferenceSnapshot(DiffCommand.java:190)
        at liquibase.command.DiffCommand.createDiffResult(DiffCommand.java:140)
        at liquibase.command.DiffToChangeLogCommand.run(DiffToChangeLogCommand.java:51)
        at liquibase.command.AbstractCommand.execute(AbstractCommand.java:8)
        ... 4 more
$liquibase--logLevel=DEBUG diffChangeLog
.:/c/repos/ServeDirtyLibsInJava/liquibaseLib/liquibase.jar:/c/repos/ServeDirtyLibsInJava/liquibaseLib/lib/hibernate-core-4.3.0.Final.jar:/c/repos/ServeDirtyLibsInJava/liquibaseLib/lib/liquibase-hibernate4-3.5.jar:/c/repos/servedirtylib/liquibaseLib/snakeyaml-1.13.jar
警告1/19/15 10:38 AM:liquibase:无法将类liquibase.ext.hibernate.database.hibernateStringDatabase用作liquibase服务,因为org.springframework.beans.factory.support.BeanDefinitionRegistry不在类路径中
调试1/19/15 10:38 AM:liquibase:已连接到root@localhost@jdbc:mysql://localhost:3306/dirtylibs
调试1/19/15 10:38 AM:liquibase:将自动提交从true设置为false
警告1/19/15 10:38 AM:liquibase:未知数据库:Hibernate
调试1/19/15 10:38 AM:liquibase:已连接到null@hibernate:spring:com.companyname.dirtylibs.persistence.entities?dialogue=org.hibernate.dialogue.mysql5dialogue
调试1/19/15 10:38 AM:liquibase:不调整自动提交模式;这已经是假的了
INFO 1/19/15 10:38 AM:liquibase:获取默认架构时出错
java.lang.NullPointerException
在liquibase.executor.jvm.jdbceutor$QueryCallableStatementCallback.doInCallableStatement(jdbceutor.java:383)
在liquibase.executor.jvm.jdbceutor.ex
task copyToLib(type: Copy) {
    into "$buildDir/output/libs"
    from configurations.runtime
}
java -jar $LIQUIBASE/liquibase.jar --classpath=<WAR FILE HERE>  --defaultsFile=<yourpath>/liquibase.properties --logLevel=info
spring-test
spring-jdbc
spring-beans
spring-context
spring-orm
<plugin>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-maven-plugin</artifactId>
            <version>3.4.1</version>
            <dependencies>

                <dependency>
                    <groupId>org.liquibase.ext</groupId>
                    <artifactId>liquibase-hibernate5</artifactId>
                    <version>3.6</version>
                </dependency>
                <dependency>
                    <groupId>org.liquibase</groupId>
                    <artifactId>liquibase-core</artifactId>
                    <version>3.5.3</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jdbc</artifactId>
                    <version>4.3.2.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>4.3.2.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>4.3.2.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-orm</artifactId>
                    <version>4.3.2.RELEASE</version>
                </dependency>
            </dependencies>
        </plugin>
            <role>architect</role>