on ‎2006 Aug 17 10:26 PM
<p>Hi,</p><p>I am getting a "ReportSDKServerException: Server has been disabled by CMS XXX-PC -
Error code:-2147217407 Error code name:serverUnavailable " error message when attempting a "reportClientDocument.open("xxx.rpt") call.</p><p>The "report application server" service is running, and so are the other 3 crystal services.</p><p>When I request "reportClientDocument.getReportAppServer() I get an empty string: "". <br /></p><p>I am running a Weblogic 8.15 AS on WinXP</p><hr /><p>I found the problem while writting these words...</p><p>I had the wrong import </p><font size="2" color="#7f0055"><p align="left"><strong>import com.crystaldecisions.sdk.occa.report.application.ReportClientDocument</strong></p><p align="left">insted of </p><p><strong>import com.crystaldecisions.reports.sdk.ReportClientDocument;</strong></p><p><strong>It would be nice though if you ellborate the differences between the two.</strong></p><p><strong>BTW I had a similar annoyance working with the sample application classes POJOResultSet and POJOResultSetMetaData, which also have a duplicate class name in your crystaldecisions packages.</strong></p><p><strong>Thanks.</strong></p></font>
Request clarification before answering.
<p>Hi,</p><p> By your post it sounds like you are actually writing code against a BusinessObjects Enterprise system. Is this correct? This type of deployment has a number of dedicated servers which allow the report processing to be offloaded. One of the servers which runs in this environment is called the Report Application Server (RAS). The RAS server is primarily responsible for any report modifications which are done at runtime. We provide a very robust API which developers will use to interact with reports and the RAS server. </p><p>The JRC on the other hand is an embedded report rendering engine which runs in-process with the Developer's application. This is a newer technology (when compared to RAS) and is the engine distributed with Crystal Reports for Eclipse. The API which is supported with the JRC is a subset of the RAS API. Ideally, in the future these will be the same APIs, but right now there are still a few objects in the RAS API that are not supported when run using the JRC as the rendering engine. Therefore we created a new namespace for the JRC to expose only those objects and methods which are fully supported by the JRC at runtime. </p><p>With the release of CR4E, the embedded designer actually uses the JRC as the back end engine, which would indicate that the JRC actually supports a large number of the RAS APIs that are not currently exposed via the JRC API namespace. The main reason for this was due to testing resources. Although the report designer has been fully tested, it's primary test case only ever involves a single user connecting against the engine. We did not have the opportunity to test the newly exposed API calls for performance and load (e.g. what happens when 30 people connect to the engine and make the same call). For this reason we could not officially support the "new" API calls with the JRC in this release. That being said, I do plan to publish a whitepaper in a few weeks time explaining to users how they can access the RAS APIs using the JRC engine. The purpose of this document will be to enable developers to build out POCs and play with the complete APIs, however the API will still not be officially supported by our support team. I will still take any feedback you may have <img src="/modules/tinymce/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-wink.gif" alt="Wink" title="Wink" />.</p><p>So now that I have sufficiently confused everyone, in a nutshell here's what I am saying:</p><p><strong>RAS API = </strong> <strong>com.crystaldecisions.sdk.occa.report.application.ReportClientDocument </strong></p><p><strong>JRC API = </strong> <strong>com.crystaldecisions.reports.sdk.ReportClientDocument</strong></p><p>The benefit of having one object model allows Developers to "upgrade" their applications to an Enterprise application with minimal code changes. Primarily it will only involve changing the namespace and the location of the RPT file in the open() method.</p><p>All of the code samples and snippets included with Crystal Reports for Eclipse will use the JRC API.</p><p>I hope this helps.</p><p>Regards,<br />Sean <br /></p>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I am using "com.crystaldecisions.sdk.occa.report.application.ReportClientDocument" to open my RPT file. I am getting the following error.
com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: The system cannot find the file specified.
-
Error code:-2147467259 Error code name:failed
at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(Unknown Source)
at com.crystaldecisions.proxy.remoteagent.s.a(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.if(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.if(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.a(Unknown Source)
at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(Unknown Source)
The RPT files are packed along with the WAR and relative location is specified in CRConfig.xml.
I am using Crystal Reports Server XI R2. Can anyone help me to find a solution for the problem. Also please let me know the location of the whitepaper that Sean Johnson was talking about.
Thanks
Chidhu
I have experienced the same error and resolved it by doing the following:
Locate the clientSDKOptions.xml (it should be in the WEB-INF\lib directory of your application)
Locate the <ServerName> tag in the clientSDKOptions.xml
In your jsp add the following code to open your Report
// open Session
ReportAppSession ras = new ReportAppSession();
ras.setReportAppServer("name you found in clientSDKOptions.xml");
ras.initialize();
//Open report.
ReportClientDocument reportClientDoc = new ReportClientDocument();
reportClientDoc.setReportAppSession(ras);
reportClientDoc.open("rassdk://C:/MyReports/MyReport.rpt", 0);
For me it worked fine. The Location you define via "rassdk://..." should exist on the machine your RAS is running on.
Good luck
Stefan.
| User | Count |
|---|---|
| 5 | |
| 5 | |
| 4 | |
| 4 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.