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

vchiem

Members
  • Posts

    443
  • 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 vchiem

  1. The JasperReports Server Ultimate guide has chapters regarding customizing the user interface, login page, home page etc...essentially customizing JSP, JS, CSS files.
  2. A SQL syntax that have worked in Postgres may not necessary work in MySQL. A lot depends on what was actually done in changing the database type to see whether it is the correct approach. A clean install of JRS 7.8 into MySQL repository db followed by a js-export of everything from the Postgres repository and js-import into the MySQL repository may be worth considering. Certified versions of Tomcat, database, OS needs to be checked against the Supported Platforms guide.
  3. This is more a question that your IT network admins can assist with. They can determine the external ip address of the host to allow the users to connect to and resolve any firewall issues.
  4. Issue:We have installed TIBCO Jaspersoft® Studio v8.0.0 in our Development environment but when trying to compile the existing reports, the following error was encountered: java.lang.RuntimeException: BUG! exception in phase 'semantic analysis' in source unit This problem did not occur in the previous release of Jaspersoft Studio v7.5.0.The log file captures the following stack: java.lang.RuntimeException: BUG! exception in phase 'semantic analysis' in source unit 'calculator_Inventory_By_Lot_Report_1639377271574_599629' null at net.sf.jasperreports.eclipse.builder.JasperReportCompiler.compileReport(JasperReportCompiler.java:307)Caused by: BUG! exception in phase 'semantic analysis' in source unit 'calculator_Inventory_By_Lot_Report_1639377271574_599629' null at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:905)Caused by: groovy.lang.GroovyRuntimeException at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:72) at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:251)Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 46: jar:file:/D:/Softwares/JS_INSTALL/Licensing Security Files_30-Apr-2020/abc-scriptlet-1.0.1.jar!/com/abc/JasperLicenseValidator.class at java.base/java.net.URI$Parser.fail(Unknown Source) at java.base/java.net.URI$Parser.checkChars(Unknown Source) at java.base/java.net.URI$Parser.parse(Unknown Source) at java.base/java.net.URI.<init>(Unknown Source) at java.base/java.net.URL.toURI(Unknown Source) at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:70) ... 76 more[/code] Solution: The error is due to groovy libraries similar to this article below: https://gateway.sdl.com/apex/communityknowledge?articleName=000016521 where the cause of the problem is due to spaces in the PATH. In TIBCO Jaspersoft® Studio 8.0, the groovy and java libraries have both been updated and hence it is possible that newer versions may have issues with the spaces in the path. To resolve this problem, eliminate the spaces in the PATH (spaces are visible in "Licensing Security Files_30-Apr-2020") and do the compilation again.
  5. Issue:After applying JasperReports® Server 7.9.1 cumulative hotfix to an existing JasperReports® Server 7.9.0 installation, users are unable to log in to JasperReports® Server. The following error message is displayed on the browser: HTTP Status 404 – Not FoundType Status ReportMessage The requested resource [/jasperserver-pro] is not availableDescription The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.[/code]When checking the catalina log, the following errors were logged: 15-Dec-2021 18:23:04.653 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [E:apache-tomcat-9.0.37webappsjasperserver-pro] java.lang.IllegalStateException: Error starting child at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720) Caused by: org.apache.catalina.LifecycleException: Failed to start component [standardEngine[Catalina].StandardHost[localhost].StandardContext[/jasperserver-pro]] ... 37 more Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [log4j] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering. at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2260)[/code] Solution: The error "More than one fragment with the name [log4j] was found." implies that there may be conflicting log4j jar files causing the Tomcat server to fail to completely start. The cumulative hotfix comes with a readme.txt file under the 'jasperserver-pro' directory detailing the full steps on applying the hotfix. Specifically the section under "Deleted files:" lists all the files that must be deleted. It is important that every single one of the listed obsolete files be checked and deleted to avoid any conflicts.
  6. Sample HTML5 Chart using Column Chart The provided sample uses a simple JSON data file containing sample JSON data. This is used to feed the data to the report. No connection to any database is required. The configuration in the HTML5 chart makes use of the following property: plotOptions.series.dataLabels.formatter In order to display the series data labels as a percentage of the whole series total, a javascript function needs to be written and set to this property: The function is: <hc:chartProperty name="plotOptions.series.dataLabels.formatter" value="function() {var dataSum = 0;for (var i=0;i < this.series.data.length;i++) {dataSum += this.series.data[i].y}; var pcnt = (this.y / dataSum) * 100; return Highcharts.numberFormat(pcnt,1) + '%';}"/>[/code]For this to work, the following extra steps is necessary: i> you must remove the plotOptions.series.dataLabels.format property if it is already being set because this property will take precedence ii> the property plotOptions.series.dataLabels.enabled needs to be set to true iii> you must set: com.jaspersoft.jasperreports.highcharts.function.properties.allowed = true in TIBCO Jaspersoft® Studio's Windows -> Preferences -> Jaspersoft Studio -> Properties. For Studio, it should already be there by default For the report to run on the TIBCO JasperReports® Server and effect the high charts function, the com.jaspersoft.jasperreports.highcharts.function.properties.allowed = true needs to be added to: ../WEB-INF/classes/jasperreports.properties followed by a restart of the TIBCO JasperReports® Server. See attached sample jrxml, percentageofvalueinchart.jrxml with the JSON data file and data adapter for import.
  7. Issue:The "Network is unavailable, please fix it." error is observed preventing the user to download any external modules (external JARs). The "Download and install all modules available" button is disabled. Solution:Connectivity access to host talend-update.talend.com and port 443 is necessary for this to work. If there is a network proxy in place then in TIBCO Jaspersoft® ETL Studio, navigate to Window -> Preferences -> General -> Network Connections and add talend-update.talend.com and the port 443 to the proxy bypass section as shown below: Run telnet command to test the host and port (requires telnet client to be installed) : telnet talend-update.talend.com 443 If it fails the connection test then contact the system administrator to allow access to this host and port. Another check is to open a browser and access https://talend-update.talend.com/nexus/ Related Articles:https://community.talend.com/s/question/0D55b000066iYHF/network-is-unavailable-please-fix-it?language=en_US
  8. CE Studio 6.18.1 does have Java 11 support but it still has Java 8 support. I think this is a matter of changing the java execution environment to point to openjdk 11 whilst still maintaining the compiler compliance level to be 1.8. In Studio, check Windows -> Preferences -> Java compiler compliance level set to 1.8 (without --release option) generated .class files compatibility set to 1.8 If you have "Installed JREs" option, add / select the Adopt OpenJDK 11 and "Execution Environment" for both JavaSE-8 and JavaSE-11 to use OpenJDK 11
  9. The Community Edition - Jaspersoft Studio version 6.15.0 (2020-10-07) readme file contains : -------------------------------------------- - RCP stand-alone version now ships AdoptOpenJDK JRE 11.0.8 - Improved Java 11 support Hence ensure you are using at least this version. Also refer to: https://community.jaspersoft.com/questions/1190481/jaspersoft-studio-using-adoptopenjdk-11-why-jre-java-18
  10. Not a common data source and it is not listed as certified but doesn't mean it won't work. The error has a UID that you can cross reference against the same UID in the jasperserver.log under WEB-INFlogs to see more info captured for this jdbc connectivity issue.
  11. Only postgres and mysql sample properties file are provided for Community Edition in-line with the following WAR installation support. https://community.jaspersoft.com/documentation/tibco-jasperreports-server-community-project-installation-guide/v780/applications
  12. It is not that it's missing but rather that it is not provided for the Community Edition. The installation of the WAR supports postgres and mysql only and those are the only two sample files provided. https://community.jaspersoft.com/documentation/tibco-jasperreports-server-community-project-installation-guide/v780/applications
  13. This error is specific to SSL certificate. There are plenty of internet resource articles on how to overcome such errors if you google: javax.net.ssl.SSLPeerUnverifiedException: Certificate for <66.119.67.25> doesn't match any of the subject alternative names: []
  14. I don't think we can pick a favorite. If all are certified then all are capable data sources. Performance related factors is not just at the dbms layer.
  15. You may be able to open it and extract it but the import command doesn't do that. The import command imports in resources from the exported catalog file and the structure within the exported catalog needs to be correct. As a minimum there should be an index.xml at the root level of the zip file but other than that it can depend on how the export was done and what was being exported.
  16. There is the scheduler function that has mail notifications that can be configured for jobs that are successful or failed. But if it has been set and there are no email notifications for any jobs then it is the SMTP server that needs to be investigated. Set the mail.debug to true for further javamail debugging (under <property name="javaMailProperties">): <prop key="mail.debug">true</prop> in the applicationContext-report-scheduling.xml and this error is then logged to the console. The advisable approach is to find out why mail notifications are not being sent/received. But if you are asking for other forms of alert and not mail notification alerts (since it is not working) then there isn't.
  17. If your mail server does not require authentication then ensure mail.smtp.auth is set to false in applicationContext-report-scheduling.xml the above config shows that this is already set. Perhaps the problem lies somewhere else but there is not enough information. You can enable mail debug to see more SMTP debug logging. Check this article on how to set mail.debug : https://community.jaspersoft.com/wiki/gmail-smtp-report-jobs-failing-smtp-authentication-error-despite-correct-username-and-password
  18. These errors provide generic messages so not much can be deduced out of them. The "502 bad gateway" error usually relates to a proxy or load balancer that perhaps failed a redirect request. The first thing to check is whether the app server (commonly Tomcat server) starts up fine without errors and whether you can log in directly to the JR Server using its native ports of 8080 (default). You can also use the browser's dev console (F12) to trace the requests or inspect the http access log.
  19. Each release has a "Supported Platforms" guide listing the versions that are certified. For Tomcat it lists 8.5.x, 9.0.x which are the versions that have gone through certification tests.
  20. Issue:In a cluster environment where TIBCO JasperReports® Servers are configured with external authentication (such as LDAP authentication) and accessing the same repository database, external users can fail to login to one of the TIBCO JasperReports® Server server nodes. In the jasperserver.log file, it was observed that the failure was due to a failed password decryption: 2021-11-15T17:47:08,998 WARN Cipherer,http-nio-8080-exec-6:228 - Decryption failed javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:989) at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:845) at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446) at javax.crypto.Cipher.doFinal(Cipher.java:2165) at com.jaspersoft.jasperserver.api.common.crypto.Cipherer.decode(Cipherer.java:226) at com.jaspersoft.jasperserver.api.common.crypto.Cipherer.decode(Cipherer.java:174) at com.jaspersoft.jasperserver.api.common.crypto.PasswordCipherer.decodePassword(PasswordCipherer.java:138)[/code]followed by an encryption of the password which resulted in an encrypted password length greater than the default length limit of 250 as defined for the JIUSER.password column: 2021-11-15T17:47:09,068 DEBUG PasswordCipherer,http-nio-8080-exec-6:154 - Encode password: true2021-11-15T17:47:09,083 ERROR BatchingBatch,http-nio-8080-exec-6:120 - HHH000315: Exception executing batch [java.sql.BatchUpdateException: Batch entry 0 update JIUser set username='bob', tenantId=2944, fullname='bob', emailAddress=NULL, password='<encrypted password string greater than 250 chars>', externallyDefined='TRUE', enabled='TRUE', previousPasswordChangeTime=NULL where id=3177 was aborted: ERROR: value too long for type character varying(250) Call getNextException to see other errors in the batch.], SQL: update JIUser set username=?, tenantId=?, fullname=?, emailAddress=?, password=?, externallyDefined=?, enabled=?, previousPasswordChangeTime=? where id=?2021-11-15T17:47:09,087 ERROR SqlExceptionHelper,http-nio-8080-exec-6:131 - Batch entry 0 update JIUser set username='bob', tenantId=2944, fullname='bob', emailAddress=NULL, password='<encrypted password string greater than 250 chars>', externallyDefined='TRUE', enabled='TRUE', previousPasswordChangeTime=NULL where id=3177 was aborted: ERROR: value too long for type character varying(250) Call getNextException to see other errors in the batch.2021-11-15T17:47:09,090 ERROR SqlExceptionHelper,http-nio-8080-exec-6:131 - ERROR: value too long for type character varying(250)[/code] Solution:The cause of this issue can be attributed to how the application servers were setup. Specifically, this was due to the different keystores that each server node was set up with and hence when an external user logs into the TIBCO JasperReports® Server which was installed with a different keystore, the encryption mechanism can fail to decrypt the stored password and subsequently "double encrypt" (encrypt the already encrypted user password) resulting in an extended encryption length exceeding the default limit allowed by the JIUSER.password column. As documented in the article "Encryption in JasperReports Server 7.5+" (https://community.jaspersoft.com/wiki/encryption-jasperreports-server-75), cluster server nodes must have the same keystore. To rectify this problem, it is necessary to ensure all app servers that participate in a cluster (or when app servers are configured to share the same 'jasperserver' repository database) are installed with the same keystore files. Note: The TIBCO JasperReports® Server 8.0 Release Notes has documented a workaround suggesting users to increase the limit of the JIUSER.password column. This is not an ideal workaround as doing this can impact on any future upgrades involving exporting and importing of repository data given that the length of the exported JIUSER.password column from the source database is greater than the length of the JIUSER.password column in the target database. A documention defect was raised to correct this entry in the Release Notes.
  21. Issue:After configuring LDAP authentication and restarting the TIBCO JasperReports® Server, the external user failed to login with a NullPointerException error displayed on the browser page. The WEB-INF/logs/jasperserver.log file captured the following stack trace : 2021-11-17T13:51:14,865 DEBUG LdapUserDetailsMapper,http-nio-8080-exec-5:58 - Mapping user details from context with DN: cn=Peter Parker,ou=people,dc=maxcrc,dc=com2021-11-17T13:51:14,868 ERROR ExternalDataSynchronizerImpl,http-nio-8080-exec-5:145 - Error during synchronization java.lang.NullPointerException at com.jaspersoft.jasperserver.api.security.externalAuth.ExternalDataSynchronizerImpl.synchronize(ExternalDataSynchronizerImpl.java:103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy188.synchronize(Unknown Source) at com.jaspersoft.jasperserver.war.util.ExternalRequestParameterAuthenticationFilter.onSuccessfulAuthentication(ExternalRequestParameterAuthenticationFilter.java:44) at com.jaspersoft.jasperserver.war.util.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:109)[/code] Solution:This issue can be resolved after applying the latest TIBCO JasperReports® Server 7.9 cumulative hotfix. The specific defect is addressed in hotfix build 20210909_1344 (hotfix_JRSPro7.9.0_cumulative_20210909_1344.zip) To obtain this hotfix, log into https://support.tibco.com/s/hotfixes and locate the cumulative hotfix build 20210909_1344 (hotfix_JRSPro7.9.0_cumulative_20210909_1344.zip) or later. Follow the instructions to apply the hotfix. Note: According to the defect this issue affects Token-based and CAS external authentication methods as well. Related Articles:JS-63380 NullPointerException issue for external authentications (Except externalAuth-db and externalAuth-SSO)
  22. Issue:Every time a user makes a selection to the first multi-select input control values, the input control resets (scrolls back) the selection focus to the start of the list and the user has to scroll down again to make additional selections. This happens only if there is a cascade where the second input control query has a connected parameter to the first input control. For example, when the second control query contains : where $X{IN, customer_id, customer} where 'customer' is a connected parameter to the first multi-select input control. This issue does not occur when there are no cascading input controls. This issue can be reproduced as follows : 1. Run a report containing an input control (first) and a cascading input control (second) 2. Make input control selections to the first input control and scroll down the first input control to make more selections 3. Observe that the first input control is scrolled back to the top of list for every selection made Every time the Input Control refreshes and scrolls back to the top of values, users will need to scroll down the list again which makes usability awkward and difficult. It is expected that the Input Control selection maintains its focus position without having to re-scroll down every time. Solution:Every time a user makes a selection to the first input control values, these two internal http requests are made: http://server:8080/jasperserver-pro/rest_v2/reports/public/Samples/Reports/AllAccounts/inputControls/customer;other/values?freshData=false&selectedOnly=true http://server:8080/jasperserver-pro/rest_v2/reports/public/Samples/Reports/AllAccounts/inputControls/customer;other/values/pagination?freshData=false&includeTotalCount=true and because of these requests the input controls are refreshed and scrolled back to the top of the list. Note: The sample report above is a modified version of the Accounts report to contain cascading input control. This is a regression defect that affects TIBCO JasperReports® Server 7.8 and TIBCO JasperReports® Server 7.9 but not versions prior. See 'Related Articles' section below for the defect incident reference. The fix for this defect is available as a cumulative hotfix corresponding to the version: TIBCO JasperReports® Server 7.8.x - Apply cumulative hotfix hotfix_JRSPro7.8.1_cumulative_20211118_1401.zip or newer TIBCO JasperReports® Server 7.9.x - Apply cumulative hotfix_JRSPro7.9.1_cumulative_20211122_0731.zip or newer TIBCO JasperReports® Server 8.0.0 - Apply cumulative hotfix_JRSPro8.0.0_cumulative_20211214_0456.zip or newer Note: Hotfixes for TIBCO JasperReports® Server can be downloaded at https://support.tibco.com/s/hotfixes Related Articles: JS-63364: Selecting cascading input controls values after scrolling resets position back to the top of list
  23. Issue:Running a report that queries a domain with a data source setup as a JDBC connection to Apache Calcite database fails with following error: Caused by: java.sql.SQLException: Error while preparing statement [select XXX from TABLE where "CREATEDTIME" between timestamp('2021-10-08 05:00:00') and timestamp('2021-10-10 04:59:59.999')] at org.apache.calcite.avatica.Helper.createException(Helper.java:56) at org.apache.calcite.avatica.Helper.createException(Helper.java:41) at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:203) ...Caused by: java.lang.RuntimeException: parse failed: Encountered "timestamp (" at line 6, column 56.Was expecting one of: "SYMMETRIC" ... "ASYMMETRIC" ... "+" ... "-" ... <UNSIGNED_INTEGER_LITERAL> ... <DECIMAL_NUMERIC_LITERAL> ... ...[/code] Solution: The Apache Calcite jdbc driver does not recognize the timestamp() function. This timestamp function exists at the domain semantic layer through the defaultSQLGenerator located inside the configuraton file ..WEB-INFapplicationContext-semanticLayer.xml. The bean id="defaultSQLGenerator" has this function: <entry key="Timestamp"> <value>"timestamp(" + sqlArgs[0] + ")"</value> </entry>[/code]To resolve this issue, a custom SQL generator can be added and used instead of the defaultSQLGenerator. For example, you can add a custom defined 'calciteSQLGenerator' : <bean id="calciteSQLGenerator" parent="defaultSQLGenerator" scope="prototype"> and remove the 'timestamp' keyword from the Timestamp entry and just have : <entry key="Timestamp"> <value>sqlArgs[0]</value> </entry>[/code]You need to ensure that you add this to the 'serverTypes' section similar to the other database types: <bean class="com.jaspersoft.commons.semantic.dsimpl.DBServerConfig"> <property name="productName" value="Apache calcite"/> <property name="sqlGenerator" ref="calciteSQLGenerator"/> </bean>[/code]and also ensure the productName and sqlGenerator in the section bean id dbServerTypeConfigFactory maps to your custom generator: <!--this maps from a database name to a SQLGenerator instance and other properties--> <bean id="dbServerTypeConfigFactory" class="com.jaspersoft.commons.semantic.dsimpl.DBServerConfigFactory"> <property name="defaultConfig"> <bean class="com.jaspersoft.commons.semantic.dsimpl.DBServerConfig"> <property name="productName" value="Apache calcite"/> <property name="sqlGenerator" ref="calciteSQLGenerator"/> <property name="properties"> ... ...[/code] Note: Changes to this file requires a restart of the TIBCO JasperReports® Server.
  24. Issue:How to add a new "UTC" time zone so that this time zone appears in the "Time Zone" drop down list of the TIBCO JasperReports® Server login page : and also appear in the "Time Zone" dropdown list of the "New Data Source" page : Solution:Adding a new time zone can be configured in the server's applicationContext.xml file. Steps: 1. Navigate to the directory ../webapps/jasperserver-pro/WEB-INF and open the file applicationContext.xml file for editing 2. Add <value>UTC</value> to the list of values under the bean id="userTimeZonesList" 3. Save the file and restart the application server. The new entry will be added to the Time Zone drop down lists as shown: Note: If the "UTC - Coordinated Universal Time" does not appear in the "Time Zone" of the "New Data Source" page when using Chrome browser, then the Chrome browser's cache needs to be first be cleared. This issue can occur despite the new time zone entry appearing in the TIBCO JasperReports® Server login page.
×
×
  • Create New...