Hello,
My overall goal is to have a single Jasper-Server and Servoy accessible place where Jasper reports (and their associated resources) can live. I want to be able to utilize Jasper Server as my reports repository, and develop/modify/tweak/test my reports in iReport using the Jasper Server plugin. I also want to be able to run my reports from either Servoy or Jasper Server, and I don’t want to copy reports from one place to another; have more than one copy of a report. So with that in mind…
My travels in trying to utilize Jasper Server and Servoy’s jasper plugin together are leaving my wondering why the current Jasper Plugin was not developed as a web-services client to Jasper Server? The way the plugin is implemented currently, report files must live in a server-accessible directory, which means that they cannot live in Jasper Server’s repository (which from what I can tell exists solely in a DB). This makes utilizing Jasper Server alongside the Servoy Jasper plugin - with a goal of sharing report files and resources - difficult if not impossible. From what i can tell it seems that the plugin team has reinvented the wheel a bit instead of utilizing Jasper Server’s WS client API.
Jasper Server comes standard with an AXIS webservice for authenticating users and accessing report units and resources etc. In my opinion, the plugin should utilize this webservice and not force report files into a directory. This may make the web-client integration a bit more straight forward too??
Another possible approach to the current Jasper Reports Plugin would be as follows:
1). Distribute a copy of Jasper Reports Community Edition with Servoy Server (developers would not have to use it necessarily, but it would be a central repo for reports)
2). Instruct developers to still use iReport for report design and editing, but provide details on how to connect iReport to the distributed Jasper Server via the Jasper Server plugin for iReport. Or even setup the connection for developers and distribute iReport too.
3). Modify js_runReport to accept a Jasper-Server webservices url for a source (instead of a JRXML/jasper filename expected to live within the report directory) and credentials for authenticating against the webservice
4). Implement the appropriate WSClient interfaces (which admittedly, at this point, I know nothing about)
Some benefits of doing things this way:
1). Central repo for report units
2). Benefit from Jasper Server functions such as scheduling, security, organization etc. + ability to run reports outside of Servoy (e.g. for custom web applications that utilize headless client instead of web client)
3). New plugin roadmap would be available for tighter integration between Servoy and Jasper Server e.g. making media/resourcebundles/lists/DB connections etc. available to Jasper Server as defined in Servoy
Also some things that the plugin is doing now e.g. compiling and saving to temp folders etc. is done automatically by Jasper Server. this could make code such as JasperReport getJasperReport a bit prettier too.
So…that’s my two cents, and I would be willing to help with this should Servoy be interested.
Also, please keep in mind my comments are not of the critical nature at all, and to be completely honest I have not delved too deeply into the webservice functionality of Jasper Server. Some of this simply may not be possible from within Servoy or I may have even misinterpreted what is possible with WSClient.
Thoughts?
Please see API document here: http://support.jaspersoft.com/downloadfile.php?itemname=wp-jaspersoftapis&newreg=1, which describes Jasper Server Webservice integration.