我们已经成功执行了DatabaseTablesPreparer并初始化了数据库中的表,但是当我们尝试使用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 [] [] [] [ ]“主要”[核心]异常java.lang.NullPointerException:null 在 com.intershop.beehive.core.dbinit.preparer.database.SQLScriptPreparer.getCommand(SQLScriptPreparer.java:158) 在 com.intershop.beehive.core.dbinit.preparer.database.SQLScriptPreparer.process(SQLScriptPreparer.java:353)
我们在使用DatabaseTablesPreparer时也遇到了类似的问题(盒式磁带为空),我们通过添加cartridge.properties文件解决了这个问题,但现在我们遇到了相同的错误(“既没有为盒式磁带'app_core_a1'找到Ivy描述符也没有找到盒式磁带属性”) ),即使盒式磁带属性文件已定义。
反编译的准备器代码中有几行发生空指针异常:
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
来自同一盒式磁带、在同一 dbinit 中定义的 DatabaseTablesPreparer 成功执行。
最佳答案
问题已通过发布墨盒解决。看来 ivy 描述符已被删除,必须重新发布。
关于orm - SQLScriptPreparer 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50856112/