Jump to content
We've recently updated our Privacy Statement, available here ×

rmiller

Members
  • Posts

    64
  • Joined

  • Last visited

 Content Type 

Profiles

Forum

Events

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Downloads

Everything posted by rmiller

  1. Issue:When Tomcat is running as a service the PID of the Tomcat process does not display in the JConsole New Connection dialog. The issue is that when you start JConsole only Java processes started by the same user are listed in the connection dialog. Resolution:Connect to the Tomcat service using remote JMX connection. Navigate to the apache-tomcatbin directory. Rename tomcate6w.exe to jasperserverTomcat.exe, double-click on it to open the Tomcat properties window. In the Java tab add the following properties to the end of the Java Options window and restart the service. -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=8082-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false-Djava.rmi.server.hostname=<host ip address>[/code] Note the port number and open a command window, then type localhost:8082 and hit enter. JConsole will open to the Overview window. Note that the JAVA_HOME environment variable must be set for this to work Read this article to learn about How to Use JConsole to Monitor the JasperReports Server
  2. Issue:When using IE9 to view reports or dashboards that are embedded in an iFrame the reports do not render correctly or sometimes they do not render at all. The reason is that JasperReports Server requires that IE9 mimic IE8. This is done in decorator.jsp by setting the meta tag: <meta content="IE=8" http-equiv="X-UA-Compatible" /> Beginning with JasperReports Server v5.1, this is resolved and users can use IE9 and IE10 out of the box. Resolution:Set the meta tag in the page header: <meta content="IE=8" http-equiv="X-UA-Compatible" />
  3. Issue:[toc on_off::hide=1] Recently a customer in a government agency had to change the password encryption algorithm from the default DESede to AES-256, FIPS 140-2 compliant encryption. Following the directions in chapter 15 of the install guide he did the following: Modifiy jasperserver-pro/WEB-INF/applicationContext-security.xml and buildomatic/conf_source/iePro/applicationContext-security.xml: Change the secretKey tag so that it is 32 bytes long to be the appropriate length for AES-256 bitChange the secretKeyAlgorithm tag to AESChange the cipherTransformation tag to AES/CBC/PKCS5PaddingSave the files and restart the serverOn importing the repository he received this error: "java.security.InvalidAlgorithmParameterException: Bad parameters: Invalid IV length. Should be 16." Resolution:The IV (INIT_VECTOR) length is hard coded to 8 bytes but AES needs 16 bytes. Modify com.jaspersoft.jasperserver.api.metadata.common.service.impl.Cipherer#INIT_VECTOR to be 16 bytes and compile the file. Replace it in jasperserver-api-metadata-impl-x.x.x.jar and copy the new jar file to both the buildomatic and the exploded war directories.
  4. When you logged in as superuser from CAS it created a second superuser account in organization_1 with only ROLE_USER permissions. A workaround for this is to: 1. Remove the CAS configuration from applicationContext-security.xml and applicationContext-security-web.xml (if you backed up the original files this is easy). 2. Restart the server and login as superuser. 3. Modify the organizaion_1 superuser and add ROLE_ADMINISTRATOR and ROLE_SUPERUSER. 4. Restore the CAS configuration. 5. Restart the server and login, via CAS, as superuser. You now have full superuser permissions
  5. Issue:The HTML5 chart API provides a way to modify pie chart labels using plotOptions.pie.dataLabels.formatter (the formatter property is available for other chart types as well, such as xAxis.label.formatter). The formatter takes a function as the value, and it is for this reason that it has been disabled due to possible XSS security vunerabilities. http://api.highcharts.com/highcharts#plotOptions.pie.dataLabels.formatter __________________________________________________________________________________________________ Resolution:Use the database to calculate the percentage and return it in a field. This field can now be used in the category bucket expression, e.g., $F{country} + ":" + $F{percent} + " %"
  6. IntroductionThere are many times when troubleshooting the JasperReports Server when we need to see what the memory is looking like, how much time is spent garbage collecting, what the thread utilization is, database query times, etc. JavaMelody is a light-weight monitoring tool that does all of this and much more. It can be used in production environments to monitor usage trends over time and help troubleshoot issues where profilers cannot be used. InstallationInstallation is done in just a few minutes. Download the distribution from https://code.google.com/p/javamelody/downloads/list and extract javamelody.jar and jrobin-x.jar, and place them in the WEB_INF/lib directory of the JRS application. Then add the following lines to WEB_INF/web.xml. <!-- Begin JavaMelody --> <filter> <filter-name>monitoring</filter-name> <filter-class>net.bull.javamelody.MonitoringFilter</filter-class> </filter> <filter-mapping> <filter-name>monitoring</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>net.bull.javamelody.SessionListener</listener-class> </listener> <!-- End JavaMelody --> Update as of June 2019 (current JavaMelody version is 1.77): Put the configuration settings above right after the "<!--#### CSRFGuard Configuration END ####-->" line, just before the first filter definition in web.xml. Another option is to add these somewhere at the top, for example right after the first <context-param> definition. If you add the JavaMelody configuration at the bottom of the file, uploading themes or any files to Repository will fail with JSON parse error. Restart the server and go to http://:/jasperserver-pro/monitoring to begin monitoring the server. Here is the user guide: https://code.google.com/p/javamelody/wiki/UserGuide Screenshots(click on images for larger versions) More screenshots here: https://code.google.com/p/javamelody/wiki/Screenshots.
  7. [toc on_off::hide=1] Prior to JasperReports Server v5.0 any configuration settings changed in the UI do not persist after server restart. What follows is a summary of how configuration settings now work after v5.0. By default (after fresh install, no imports), all settings are stored in files. Therefore, (after fresh install, no imports) the settings you see in the Manage > Server Settings UI (as superuser) are the ones that are also stored in the files (applicationContext* and log4j.properties). While still in the default state (no imports, no changes to settings in the UI), you can modify the values in the files, and you will see these new values in the UI after restarting the server. If you modify any setting in the UI (logs or Ad Hoc, etc.), that setting is now stored in the repository, but it is NOT written to the corresponding file. In addition, the setting takes effect immediately. On a setting by setting basis, any setting that was modified in the UI and thus stored in the repository now takes precedence over the setting in its corresponding file. If you modify the file, you will not see the modification and the UI will still show the changed value that was stored in the repository (and should be in effect on the server). This is now true through any restart of the server. Thus, you can have different values for any given setting between what is seen on the server and what is stored in the config files. The settings are stored in a list-of-values resource named GlobalPropertiesList located in the System Properties folder. You will be able to see any property that you modify in the UI reflected here. And after startup, this list is read and takes effect immediately, so you should see this value in the UI as well. The GlobalPropertiesList is always exported in a catalog. You can choose to import or not import the GlobalProperties list with every import. If the list is not empty (settings were configured in the UI of the originating server), then those settings will be in the export catalog and will be imported (appear in the target server's /properties/GlobalPropertiesList) and take effect immediately. To "reset" the UI values, you can edit the GlobalPropertiesList to remove the settings that were modified. If the setting no longer appears in the GlobalPropertiesList, upon the next restart, the value in the configuration file should be in effect and appear in the Settings UI. References:JasperReports Server Admin Guide, section 7.1
  8. IssueParsing a very large XML data source in the server can be very slow. In a custom application using a 24K line XML data source to fill a report took over 24 minutes on a Mac with dual 4 core processors. On another machine it was reported to take as long as 2 hours. Yet the same data source took less than 2 minutes to fill a report when previewed in iReport Designer. The reason is because iReport Designer uses the Jaxen XPath engine while the JasperReports Library uses the Xalan XPath engine. Jaxen is much faster. Switching to the Jaxen XPath engine on the server reduced the time to fill the report from 24 minutes to 2 minutes. ResolutionBy default JasperReports Library uses XalanXPathExecuterFactory, see: http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.xpath.executer.factory Open <js-install>/webapps/jasperserver-pro/WEB-INF/classes/jasperreports.properties. Add the following property: net.sf.jasperreports.xpath.executer.factory=net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory In a custom application, using the JasperReports Library, use: JRProperties.setProperty("net.sf.jasperreports.xpath.executer.factory" ,"net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory");[/code]
  9. With the new security validations added in 4.5.x, by default SQL queries can begin only with 'SELECT.' However in PostgreSQL and Oracle a 'WITH' clause is a valid way to begin a SQL query. For example the following is a valid query in Oracle: WITH subquery_name AS (the aggregation SQL statement) SELECT (query naming subquery_name); Adding WITH to the security validatorOpen jasperserver-pro/WEB-INF/classes/esapi/validation.properties (or .../jasperserver/...) Add the following to the ValidSQL rule: Validator.ValidSQL=(?is)^\s*(select|with)\s+^;+$ Open the security.properties file in the same folderUncomment the following line:sqlQueryExecutor=Alpha,ValidSQL,500000,true,SQL_Query_Executor_context[/code]Close the files and restart the server. The ValidSQL rule will now allow for the words "select" or "with" to be at the beginning of a query. Note: 11/3/2016 JS-27554 WITH clause in SQL for derived table in Domain designer doesn't work
  10. Procedure[toc on_off::hide=1] Shift-select all the columns under the Column Header. Righ-click and select "Group Selected Columns." This creates a group header called "Column 1 (Empty Group Header)." Right-click on the new group header and select "Add Cell." This creates a cell that spans all the columns. The lable changes from "Empty Group Header" to "Group Header." Add a static text field to the new cell.
  11. SummaryIn Windows a user clicks on the 64 bit JasperReports Server installer but nothing happens. SymptomThe user clicks on the installer but nothing happens. There is no whirling cursor, no processes show up in Task Manager, and nothing is logged in the event logs. There is no indication of what has gone wrong. CauseThe 64 bit installer is expecting a 64 bit JDK but if it finds a 32 bit JDK it simply quits. ResolutionDownload and install a 64 bit JDK. Configure the PATH and JAVA_HOME environment variables to point to the 64 bit JDK. Launch the installer. It is a good idea to restore the old 32 bit JDK in the environment variables after the installation process in the event there is a dependency on other applications for it. Once JasperReports Server is installed it uses the bundled JDK to run.
×
×
  • Create New...