Используя Commandbox 4.7.0 + 00026, я пытаюсь открыть документ Crystal Reports для подготовки к выводу в формате PDF. Я не могу открыть файл, получаю ошибку
java.lang.NoClassDefFoundError: com/crystaldecisions/reports/common/data/CrystalResultSet
в строке
var rd = rcd.open(reportPath, 0);
У меня естьподтвердил, что CrystalCommon2.jar находится в папке lib.
Вот полный исполнитель задач CommandBox:
component{
/*
The .jar files from Java Reporting Component SDK are copied to `box\engine\cfml\cli\cfml-web\lib`
*/
property name = "out" inject = "java:java.io.ByteArrayOutputStream";
property name = "crs" inject = "java:com.crystaldecisions.reports.common.data.CrystalResultSet";
property name = "crv" inject = "java:com.crystaldecisions.report.web.viewer.CrystalReportViewer";
property name = "oro" inject = "java:com.crystaldecisions.sdk.occa.report.application.OpenReportOptions";
property name = "rcd" inject = "java:com.crystaldecisions.sdk.occa.report.application.ReportClientDocument";
property name = "ref" inject = "java:com.crystaldecisions.sdk.occa.report.exportoptions.ReportExportFormat";
/* resources
http://www.javathinking.com/2011/09/using-crystal-reports-java-api-to.html
/3699433/eksport-otchetov-crystal-v-pdf-v-formate-java
*/
function run(){
var reportPath = "c:\reports\Statement of Account.rpt";
var openAsReadOnly = oro._openAsReadOnly;
var inprocConnectionString = rcd.inprocConnectionString;
var rd = rcd.open(reportPath, 0);
out.reset();
}
}
Некоторые ресурсы указывают, что существует потребность в CRConfig.xml, но я не добился успеха -перепробовал множество мест. CRConfig.xml:
<?xml version="1.0" encoding="utf-8"?>
<CrystalReportEngine-configuration>
<reportlocation>..</reportlocation>
<timeout>0</timeout>
<ExternalFunctionLibraryClassNames>
<classname></classname>
</ExternalFunctionLibraryClassNames>
</CrystalReportEngine-configuration>
Другие ресурсы утверждают, что CrystalReportsEngine-config.xml должен существовать. Опять же, не уверен, где он должен находиться.
<?xml version="1.0" encoding="utf-8"?>
<CrystalReportEngine-configuration>
<reportlocation>c:\reports\</reportlocation>
<timeout>10</timeout>
<keycode>MyLicenseKeyCodeHere</keycode>
</CrystalReportEngine-configuration>