title: Crystaldecisions ReportSDKIllegalArgumentException
body: <p>I am currently working on a migration of BO 4.1 related tool.
  The tool is used to deploy the crystal reports from drop location to BO Server. The tool was developed using BO XI 3.1 Java SDK code and will be migrated to BI 4.1.</p>
  
  <p>In the code it is getting IInfoObjects instance by querying infoStore.
  Query used </p>
  
  <pre><code>"SELECT TOP 1 * FROM CI_INFOOBJECTS WHERE SI_KIND='CrystalReport' AND SI_NAME ='XXXX' AND SI_INSTANCE = 0"
  </code></pre>
  
  <p>There is no infoObjects available currently and the code hence create a new infoObjects collection by using </p>
  
  <pre><code>infoStore.newInfoObjectCollection();
  </code></pre>
  
  <p>Further the code will create IReport using the following code </p>
  
  <pre><code>IReport report = (IReport) infoObjects.add(pluginInfo);
  </code></pre>
  
  <p>During this execution I am getting following exception</p>
  
  <blockquote>
    <p>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)</p>
  </blockquote>
  
  <p>I searched around for the exception and it appears some jar mismatch issue, but could not understand which jar and where can I find those jars.
  Any suggestion will be helpful. </p>