2016-11-11 1285 views
2

當我嘗試通過啓動Liquibase那2個文件:liquibase.exception.ChangeLogParseException:錯誤讀取遷移文件:找到的匹配mychanges.xml

JdbcConnection liquibaseConnection = new JdbcConnection(connection); 

Liquibase liquibase = new Liquibase("mychanges.xml", 
new ClassLoaderResourceAccessor(),liquibaseConnection); 

liquibase.update("dev"); 

當要更新我得到這個例外

liquibase.exception.ChangeLogParseException: Error Reading Migration File: Found 2 files that match mychanges.xml 

而且是造成:

Caused by: java.io.IOException: Found 2 files that match mychanges.xml 

這似乎奇怪,因爲當我在看war文件它只包含一個mychanges.xml

我試着重命名它,並將其移動到另一個位置。

我不明白爲什麼它給了我這個除外。 plees幫助

回答

2

我自己找到了。拋出的異常是不正確的。 這實際上意味着無法找到該文件。 這種情況非常奇怪的例外。

有了這個,我發現我的類路徑有點破了。

0

我有同樣的問題,發現ClassLoaderResourceAccessor.java原因如下:

Enumeration<URL> resources = classLoader.getResources(path); 

因此你的XML必須是CLASSPATH的一部分,而不是在你的文件系統或類似這樣的路徑。