While most of our enterprise runs our BO reports through the server, we have needs from time to time to run them in java webapps using the BO runtime. The code pattern is we open the document, verifyDatabase(), set the parameters, and then export (usually in PDF).
I was recently tasked with writing our own internal webservice to expose these runtime reports to access by other contexts. But the service wouldn't work. I got a variety of errors depending on which report I tried and whether I verified the database before or after the parameter set (neither worked).
Some of the errors are listed below. But again, they all only happen in localhost. As soon as I take the exact code onto my websphere server, it works. Same database names. I even made sure to use the same driver. My localhost IS a local copy of websphere integrated with Rational Application Developer (eclipse).
There's clearly something about that environment difference that is causing BO to behave differently. But I'm not sure what to look at.
THE ERRORS:
One or more variables are null.---- Error code:-2147467259 [CRSDK00001228] Error code name:failed JRCCommunicationAdapter detected an exception: Failed to bind columns. Exception in formula '{@fAssetAprDt}' at '{CS62_SP.ASSETAPRDT}': Caused by: java.lang.NullPointerException at com.businessobjects.reports.sdk.builder.EROMSubreportObjectBuilder.a(SourceFile:75) ~[CrystalReportsRuntime.jar:12.2.229.4422] at com.businessobjects.reports.sdk.builder.a.a(SourceFile:135) ~[CrystalReportsRuntime.jar:12.2.229.4422] UPDATE 1: Rational Application Developer version = 9.7.0.5 Eclipse version = 4.7.3.v20180301-0715 Websphere version = 9.0.5.20
In both environments, the crystal jars are included in the web-inf/lib and packaged with the EAR deployable. No shared libraries. Our ops team likes the simplicity.
In the localhost, I have a popup that applies the application and does the publishing for me. In the working server, I deployed it via the admin console. To the best of my knowledge, the end result is the same. The app appears no different in the application view of both.