2

我们已经成功执行了 DatabaseTablesPreparer 并初始化了 DB 中的表,但是当我们尝试使用 SQLScriptPreparer 初始化表上的索引时,我们得到以下异常:

ES1 dbinit [] [] com.intershop.platform.cartridge.internal.CartridgeImpl [] [] [] [] "main" 找不到墨盒“app_core_a1”的 Ivy 描述符和墨盒属性!ES1 dbinit [] [app_core_a1:Class1 DatabaseIndexesPreparer [hr/a1/core/dbinit/scripts/dbindex.ddl] 版本:null] com.intershop.beehive.core.dbinit.preparer.database.DatabaseIndexesPreparer [] [] [] [ ] "main" [core] Exception java.lang.NullPointerException: null at com.intershop.beehive.core.dbinit.preparer.database.SQLScriptPreparer.getCommand(SQLScriptPreparer.java:158) at com.intershop.beehive.core.dbinit .preparer.database.SQLScriptPreparer.process(SQLScriptPreparer.java:353)

我们在 DatabaseTablesPreparer 中遇到了类似的问题(Cartridge 为空),我们通过添加 Cartridge.properties 文件解决了这个问题,但现在我们得到了相同的错误(“Neither Ivy 描述符,也没有为墨盒 'app_core_a1' 找到墨盒属性”),即使定义了墨盒属性文件。

反编译的准备程序代码中有发生空指针异常的行:

getCartridge().getVersion() + (getCartridge().getBuild().isEmpty() ? "" : new StringBuilder().append(".").append(getCartridge().getBuild()).toString()) };

这是 dbinit.properties 中的准备程序:

Class1  = com.intershop.beehive.core.dbinit.preparer.database.DatabaseIndexesPreparer \
          hr/a1/core/dbinit/scripts/dbindex.ddl

这是我们正在执行的 dbinit 命令:

dbinit.bat --exec-id=app_core_a1:Class1

来自同一盒的 DatabaseTablesPreparer,定义在同一 dbinit 中成功执行。

4

1 回答 1

3

问题已通过发布墨盒解决。似乎 ivy 描述符已被删除,必须重新发布。

于 2018-06-14T16:37:48.077 回答