Crystaldecisions ReportSDK非法参数异常
Crystaldecisions ReportSDKIllegalArgumentException
我目前正在迁移 BO 4.1 相关工具。
该工具用于将 crystal 报告从放置位置部署到 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();
此外,代码将使用以下代码创建 IReport
IReport report = (IReport) infoObjects.add(pluginInfo);
在此执行期间,我遇到以下异常
Exception in thread "main" java.lang.NoClassDefFoundError:
com/crystaldecisions/sdk/occa/report/lib/ReportSDKIllegalArgumentException
at
com.crystaldecisions.sdk.plugin.desktop.report.internal.ReportFactory.makePlugin(ReportFactory.java:83)
at
com.crystaldecisions.sdk.occa.pluginmgr.internal.PluginMgr.getPluginInterface(PluginMgr.java:349)
at
com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add_aroundBody0(InfoObjects.java:775)
at
com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add_aroundBody1$advice(InfoObjects.java:512)
at
com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add(InfoObjects.java:1)
我四处搜索异常,它似乎是一些 jar 不匹配问题,但无法理解哪个 jar 以及在哪里可以找到这些 jar。
任何建议都会有所帮助。
在您的项目中包含 CrystalReportsSDK.jar。
有许多实用程序可帮助查找丢失的 classes 的 jar 文件。我更喜欢便宜的方法——只需从 jar 目录中执行 unzip -l *.jar > jars.txt
,然后在 jars.txt 中搜索丢失的 class.
谢谢!添加罐子帮助我解决了问题。
回答我问的第二个问题,关于罐子的位置
{Installation loc}/opt/businessobjects/bo41/sap_bobj/enterprise_xi40/java/lib
我目前正在迁移 BO 4.1 相关工具。 该工具用于将 crystal 报告从放置位置部署到 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();
此外,代码将使用以下代码创建 IReport
IReport report = (IReport) infoObjects.add(pluginInfo);
在此执行期间,我遇到以下异常
Exception in thread "main" java.lang.NoClassDefFoundError: com/crystaldecisions/sdk/occa/report/lib/ReportSDKIllegalArgumentException at com.crystaldecisions.sdk.plugin.desktop.report.internal.ReportFactory.makePlugin(ReportFactory.java:83) at com.crystaldecisions.sdk.occa.pluginmgr.internal.PluginMgr.getPluginInterface(PluginMgr.java:349) at com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add_aroundBody0(InfoObjects.java:775) at com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add_aroundBody1$advice(InfoObjects.java:512) at com.crystaldecisions.sdk.occa.infostore.internal.InfoObjects.add(InfoObjects.java:1)
我四处搜索异常,它似乎是一些 jar 不匹配问题,但无法理解哪个 jar 以及在哪里可以找到这些 jar。 任何建议都会有所帮助。
在您的项目中包含 CrystalReportsSDK.jar。
有许多实用程序可帮助查找丢失的 classes 的 jar 文件。我更喜欢便宜的方法——只需从 jar 目录中执行 unzip -l *.jar > jars.txt
,然后在 jars.txt 中搜索丢失的 class.
谢谢!添加罐子帮助我解决了问题。 回答我问的第二个问题,关于罐子的位置
{Installation loc}/opt/businessobjects/bo41/sap_bobj/enterprise_xi40/java/lib