我目前正致力于迁移BO 4.1相关工具。 该工具用于将水晶报告从放置位置部署到BO服务器。该工具使用BO XI 3.1 Java SDK代码开发,并将迁移到BI 4.1。
在代码中,它通过查询infoStore获取IInfoObjects实例。 使用查询
"SELECT TOP 1 * FROM CI_INFOOBJECTS WHERE SI_KIND='CrystalReport' AND SI_NAME ='XXXX' AND SI_INSTANCE = 0"
目前没有可用的infoObjects,因此代码使用
创建一个新的infoObjects集合infoStore.newInfoObjectCollection();
此外,代码将使用以下代码
创建IReportIReport report = (IReport) infoObjects.add(pluginInfo);
在执行期间,我遇到了异常
线程“main”中的异常java.lang.NoClassDefFoundError: COM / crystaldecisions / SDK / OCCA /报告/ lib中/ ReportSDKIllegalArgumentException 在 com.crystaldecisions.sdk.plugin.desktop.report.internal.ReportFactory.makePlugin(ReportFactory.java:83) 在 com.crystaldecisions.sdk.occa.pluginmgr.internal.PluginMgr.getPluginInterface(PluginMgr.java:349) 在 com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add_aroundBody0(InfoObjects.java:775) 在 com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add_aroundBody1 $咨询(InfoObjects.java:512) 在 com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add(InfoObjects.java:1)
我四处寻找异常并且看起来有些罐子不匹配问题,但是无法理解哪个罐子以及我在哪里可以找到这些罐子。 任何建议都会有所帮助。
答案 0 :(得分:1)
在项目中加入 CrystalReportsSDK.jar 。
有许多实用程序可帮助查找丢失类的jar文件。我更喜欢廉价的方法 - 只需从jar目录中执行unzip -l *.jar > jars.txt
,然后在jars.txt中搜索缺少的类。
答案 1 :(得分:0)
谢谢!添加jar帮我解决了这个问题。 回答我问的第二个问题,关于罐子的位置
{Installation loc}/opt/businessobjects/bo41/sap_bobj/enterprise_xi40/java/lib