JasperReportsIntegration 2.4.0 released

I have just released a new version of the JasperReportsIntegration toolkit. You can download version 2.4.0 here: http://www.opal-consulting.de/downloads/free_tools/JasperReportsIntegration/.

What are the main features?

It contains the following fixes or new features, the most
noteworthy certainly being the upgrade to the latest JasperReports
libraries 6.4.1.

  • FIX: #3939 – Built-in report functions not working due to
    missing library jasperreports-functions-$version.jar
  • FIX: #3940 – printerDiagnostics abort when supported
    attribute values cannot be retrieved for category
  • FEATURE: #3707 – Upgrade to JasperReports 6.4.1
  • FEATURE: #3941 – Support for timeZones (report parameter
    REPORT_TIME_ZONE)
  • FEATURE: #3942 – test.jrxml – list of user objects removed –
    timeZone displayed

    • in order to see a change here you have to copy the new
      version of the following files into your reports folder:

      • test.jasper
      • test.jrxml

In order to use the integration it is always best to look how the APEX test application implements the new features, also you can look at the package specification:

    
    /**  make a callout with utl_http to the j2ee container running the
    *   JasperReportsIntegration web application
    *   => return the results
    *
    * @param p_rep_name      name of the report (needs a name.jasper file deployed on the server)
    * @param p_rep_format    report format, e.g. pdf, rtf, etc, see constants
    * @param p_data_source   data source name, needs to be configured in J2EE application
    * @param p_out_filename  filename if the file should be downloaded
    * @param p_rep_locale    report locale setting, e.g. de_DE or en_US
    * @param p_rep_encoding  encoding, e.g. UTF-8
    * @param p_additional_params additional parameters, e.g.: p1=1&p2=2
    * @param p_print_is_enabled shall the report be sent to the printer directly?
    * @param p_print_printer_name  name or substring of printer name
    * @param p_print_media   media used, either the paper size or the tray
    * @param p_print_copies  number of copies to be printed
    * @param p_print_duplex  duplex printing?
    * @param p_print_collate sorting the print output?
    * @param p_save_is_enabled shall the generated file be saved on the server?
    * @param p_rep_time_zone "time zone" parameter for the execution of the report, 
                            a list of valid entries can be found here:
                            https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
                            E.g.: Europe/Berlin, UCT, US/Central, US/Pacific, 
                            Etc/Greenwich, Europe/London
    * @param p_save_filename filename for the file to be saved on the server 
    * 
    */
    PROCEDURE show_report (
        p_rep_name            IN   VARCHAR2 DEFAULT 'test',
        p_rep_format          IN   VARCHAR2 DEFAULT c_rep_format_pdf,
        p_data_source         IN   VARCHAR2 DEFAULT 'default',
        p_out_filename        IN   VARCHAR2 DEFAULT NULL,
        p_rep_locale          in   varchar2 default 'de_DE',
        p_rep_encoding        in   varchar2 default 'UTF-8',
        p_additional_params   in   varchar2 default null,
        p_print_is_enabled    in   boolean default false,
        p_print_printer_name  in   varchar2 default null,
        p_print_media         in   varchar2 default null,
        p_print_copies        in   number default 1,
        p_print_duplex        in   boolean default false,
        p_print_collate       in   boolean default false,
        p_save_is_enabled     in   boolean default false,
        p_save_filename       in   varchar2 default null,
        p_rep_time_zone       in   varchar2 default null
    );
    

or look at the J2EE application http://host:port/JasperReportsIntegration/ after you deployed it:

Screenshot of J2EE test application

Please comment here if you find any issues or any other features you might need … . If you find things that are broken please let me know quickly so that I can fix them.

Always trying to be better than yesterday,
~Dietmar.

24 replies
  1. Peter Chiu
    Peter Chiu says:

    Enhancement request
    @param p_rep_format report format, e.g. pdf, rtf, etc, see constants

    In iReport Designer, it allow Single Sheet XLS or Multiple Sheets XLS.
    If you can fix p_rep_format to support both format, that would be great.

    Reply
  2. Dennis Verdaasdonk
    Dennis Verdaasdonk says:

    We are using this now for 4 years in a multi tenant production server.
    it works very well never had any issues with the integration.
    Now upgraded development to this version, that will go live in December

    Reply
  3. Ben
    Ben says:

    Awesome work Dietmar – I have used the older version at several client sites along with APEX and it works brilliantly – great to be able to make use of the current version of Jasper.

    Thanks 🙂

    Reply
    • dietmaraust
      dietmaraust says:

      Hi Ben,

      totally love your feedback! Keep building cool stuff with it.

      Cheers,
      ~Dietmar.

      P.S.: Anything you were struggling with in particular … that I could change to make it easier for people to use?

      Reply
  4. Armen
    Armen says:

    Hello Dietmar,

    many, many thanks for your great work!!
    It is a super solution, which is used by many users every day very gladly.

    Thanks for your time :-).

    Reply
      • Armen
        Armen says:

        Hello Dietmar,

        not yet, I would gladly try to install the new version first in the TEST system. If I did not get it, I’ll get in touch with you.

        Reply
  5. Armen
    Armen says:

    Hello Dietmar,

    not yet, I would gladly try to install the new version first in the TEST system. If I did not get it, I’ll get in touch with you.

    Reply
  6. Simon Černuta
    Simon Černuta says:

    Hello Dietmar,

    Thank you for this great integration utility.

    The only feature we are missing is a plain text file export. It is usefull for simple data exchange between different systems and communication with low level hardware (uploading store scales with item name,price … information). Although CSV exporter can be used, some tweaking has to be done otherwise delimiters are added to resulting report.

    In short, we would need a JasperReport text exporter.

    Reply
      • Simon Černuta
        Simon Černuta says:

        Thank you Dietmar,

        Upon upgrade to new version (2.4.0) on server where my application is hosted (at Maxapex) I noticed that _repEncoding (for IBM852 charset) that worked on your previous version is not working any more.

        Simon

        Reply
        • dietmaraust
          dietmaraust says:

          Hi Simon,

          really strange. I haven’t changed anything there. Could you please send me the debug / logging output, especially the URL that gets generated for the Tomcat?

          Also, could you try to run the report using the encoding directly when accessing the J2EE application (don’t know whether you have access to it or not) .

          Please send me also a simplified test case to my email address. (dietmar.aust at opal-consulting.de). And a screenshot of what the result should look like.

          Thanks,
          ~Dietmar.

          Reply
  7. paul
    paul says:

    Hi
    We have been using your older version of product for many of our clients for more than 4 years.
    And never we had issues .Will test your product new version and shall get back.
    Currently based in Mumbai and Soon moving to germany
    Thanks again.
    Paul j

    Reply
  8. David Hubbard
    David Hubbard says:

    Hi Dietmar

    We have been using v2.1.0 very successfully for a while now running in Glassfish, and I’m in the process of checking out 2.4.0 for an upgrade.

    We are using jndi type datasource and came across a problem – which I have worked round – but I think it may trip others up.

    First off (for Glassfish) the jndiPrefix is different to out-of-the-box prefix setting i.e. Glassfish required “jdbc/”

    [application]
    configFileVersion=2.3.0
    #jndiPrefix=java:comp/env/jdbc/
    jndiPrefix=jdbc/

    For JNDI based resource the usual setting (working in previous version of JRI) is:
    [datasource:myapp]
    type=jndi
    name=myapp

    However this on it’s own gives an Exception on app restart

    Caused by: java.lang.NullPointerException
    at de.oc.integration.jasper.webapp.AppConfig.decryptPWD(Unknown Source)
    at de.oc.integration.jasper.webapp.AppConfig.processConfigFile(Unknown Source)
    at de.oc.integration.jasper.webapp.AppConfig.initialize(Unknown Source)
    at de.oc.integration.jasper.webapp.AppServletContextListener.contextInitialized(Unknown Source)
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:5396)
    at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:743)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5965)
    … 26 more

    It looks to me like the optional encryption/decryption expects a password field specified in the datasource, which isn’t normally required for JNDI – my work-around is to include a “password” value in the jndi config e.g.

    [datasource:myapp]
    type=jndi
    name=myapp
    password=this-is-required-for-work-around

    This allows the app server to restart and I can now get test connection and test report working.

    Regards and thanks for the great software
    David

    Reply
  9. Bright
    Bright says:

    Hi Dietmar,

    I have installed JasperReportsIntegration2.4 , that works fine.
    I will encrypt the passwd in application.properties file with encryptPasswords.sh.

    I’m facing below errors:
    bin]$ ./encryptPasswords.sh /opt/oracle/JasperReportsIntegration2.4/conf/application.properties
    Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableException
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)

    How to resolve this issue?
    Best regards, Bright

    Reply
  10. Gaurav C
    Gaurav C says:

    Hi Dietmar…Good day to you.
    Am facing a strange issue off late…of getting no data in my Jasper Report even though it shows it correctly, both in iReport and JasperStudio. There are no errors either in the log files to indicate any issue.
    My configuration is as follows:
    Jasper Reports Integration v1.3 (we are having recurrent issues with version 2.4 of multiple classnofound exceptions)
    Open JDK 1.8
    APEX 5.1.2 (installed via OXAR).

    Your test report works correctly and shows me the list of tables in my schema.
    Any pointers would be greatly appreciated.

    Regds and Kudos once again on producing such a brilliant utility,
    Gaurav

    Reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *