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

ghudson_1

Members
  • Posts

    284
  • Joined

  • Last visited

  • Days Won

    3

 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 ghudson_1

  1. If you are embedding via visualize.js then this is an interesting reference - https://community.jaspersoft.com/wiki/best-practices-deploying-jasperreports-server-your-web-application
  2. Issue DescriptionRegarding JasperReports Server repository setup when using Oracle with PDB / CDB, the following error can occur for Oracle PDB/CDB database configurations when trying to connect to the CDB with a common user: ORA-12828: Can't start parallel transaction at a remote site ResolutionThis was remedied EITHER by using a native Oracle jdbc driver rather than the default Tibco Oracle jdbc driver OR by setting config values for the Tibco Oracle driver listed here: http://media.datadirect.com/download/docs/jdbc/alljdbc/index.html#page/jdbcconnect/supportlinks.html SupportLinks property needs to be set through the admin options in default_master.properties"
  3. Issue DescriptionOnly a background map appears, no markers are displayed in a report containing the tibcoMap element Resolution Latitude, longitude and other data had been provided for the markers, but no icon.url was specified. icon.url is mentioned on this page - https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v750/working-tibco-geoanalytics-maps Location and icon.url are the minimum requirements. You can edit your markers thru the UI, or in the jrxml source directly, like: <c:itemProperty name="icon.url" value="https://img.icons8.com/material-two-tone/24/000000/marker-storm.png"/> Ref. Case 01841162
  4. Issue DescriptionA customer wanted to hide the export button in Ad hoc View designer, they shared their findings for version 7.2.0 Resolution This customization requires a .jsp change. A good beginning reference for making UI customizations is the Ultimate Guide: https://community.jaspersoft.com/documentation/tibco-jasperreports-server-ultimate-guide/v750/customizing-report-rendering-page For a starting point, use find in files and comparison/contrast to find the right jsp. Don't forget to reference the /bundles/ .properties if you are trying to search by label. For example the "export" label might have a very specific name listed in the /bundles/ .properties file. Edit the WEB-INF/jsp/modules/adhoc/adHocDesigner.jsp and comment out the "export" BEFORE <c:if test="${!isEmbeddedDesigner}"> <li class="node"><button id="export" class="button capsule mutton up last" ${canSaveOrExport} title="<spring:message code="button.export"/>"><span class="wrap">Export<span class="icon"></span><span class="indicator"></span></span></button></li> </c:if> AFTER <!-- Commented out this menu button 05/01/2020 <c:if test="${!isEmbeddedDesigner}"> <li class="node"><button id="export" class="button capsule mutton up last" ${canSaveOrExport} title="<spring:message code="button.export"/>"><span class="wrap">Export<span class="icon"></span><span class="indicator"></span></span></button></li> </c:if> --> Ref. Case 01856233
  5. Issue DescriptionUnexpectedly a customer began seeing an error while trying to export from a dashboard. The error stacktrace begins: java.lang.IllegalStateException: The driver executable does not exist: /usr/share/jbossas/bin at com.google.common.base.Preconditions.checkState(Preconditions.java:197) at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:117) Resolution PhantomJS is relied upon for export of dashboards. Steps for setup/config of PhantomJS are here: https://community.jaspersoft.com/documentation/tibco-jasperreports-server-community-project-administrator-guide/v720/configuring-0#Configuring_a_JavaScript_Engine An internet research found a thread below this error means that PhantomJS is trying to execute, but is not found or not configured correctly. https://stackoverflow.com/questions/28794127/java-lang-illegalstateexception-the-driver-executable-does-not-existPhantomJS The error was corrected by retracing steps from documentation, including verifying the location of the executable and ensuring permissions in the file system were correct. Ref. Case 01847941
  6. Issue DescriptionIn Studio 7.5.0, when publishing to an earlier version of JasperReports Server, you might encounter an error if you have textfields using isStretchWithOverflow=true. The Studio error upon publish is: org.apache.http.client.HttpResponseException: illegal.parameter.value.error Invalid JRXML JRXML.content JRXML.content at com.jaspersoft.studio.server.protocol.restv2.RESTv2ExceptionHandler.handleErrorDescriptor(RESTv2ExceptionHandler.java:121) at... ResolutionThe server-side error in jasperserver.log provides a clue, the key error is: org.xml.sax.SAXParseException; lineNumber: 90; columnNumber: 65; cvc-complex-type.3.2.2: Attribute 'textAdjust' is not allowed to appear in element 'textField'. This is occurring because 'textAdjust' only exists in the 7.5.0 version of JR API, and Studio isn't correctly downgrading it's API syntax during publish.. Workaround is toggle from "Same version as server" to "Jasperreports 6.4.3" under "Advanced" in the Studio connection to JRS. Ref. Case 01859282
  7. Issue DescriptionA new change in 7.2.0 and 7.5.0 requires some additional commenting for the JRS Sql Validator. If you are modifying the ValidSQL validator in validation.properties and not seeing any effect, then you have an extra step to take. ResolutionModify security.properties and uncomment line 460 in version 7.5.0 Before: # sqlQueryExecutor=Alpha,ValidSQL,500000,true,SQL_Query_Executor_context After: sqlQueryExecutor=Alpha,ValidSQL,500000,true,SQL_Query_Executor_context Ref. Case 01858739
  8. Issue DescriptionIn a domain security file's principalExpression element, the typical example checks to see if a user's role is in a list of the roles provided, like: authentication.getPrincipal().getRoles().any{ it.getRoleName() in ['ROLE_T_1, ROLE_T_2, ROLE_T_3, ROLE_T_99999'] ... See https://community.jaspersoft.com/documentation/tibco-jasperreports-server-security-guide/v7/domain-and-security-recommendations for reference But some users might want to check to see if any of a user's roles simply contain ROLE_T, for simplicity. ResolutionIt is possible to use this expression in your principalExpression element: authentication.getPrincipal().getRoles().contains('ROLE_T') If any of the users's roles contain ROLE_T as part of the rolename, the expression will return true. Ref. Case 01854677/strong>
  9. Issue DescriptionIn Studio 7.3.1 when trying to compile or preview a report which references a scriplet, an error can occur, like: net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. com.gregh.jasperreports.scriptlets.ScriptletReports cannot be resolved to a type com.gregh.jasperreports.scriptlets.ScriptletReports)parameter_sc_test_SCRIPTLET.getValue()).getFiltersString.... .... ResolutionThis error indicates the jar isn't being found on the runtime classpath. But this error is occurring even when the Studio BuildPath seems correctly configured. The workaround is to use Studio 7.5.0, and modify Studio's compatibility settings as needed. Ref. Case 01846260
  10. Issue DescriptionIn Studio 7.5.0, if publishing to JRS version 7.1 or 7.2, a defect can occur if certain textField attributes have been defined in the jrxml. The error while trying to publish to a JRS folder is: org.apache.http.client.HttpResponseException: illegal.parameter.value.error Invalid JRXML Additionally, server-side in jasperserver.log, you'll see an error similar to: org.xml.sax.SAXParseException; lineNumber: 90; columnNumber: 65; cvc-complex-type.3.2.2: Attribute 'textAdjust' is not allowed to appear in element 'textField'. ResolutionThe workaround for this behavior is to edit the JasperReports Server Connection, expand Advanced Settings and toggle "JasperReports Library Version" to JasperReports 6.4.3 Ref. Case 01847693
  11. Issue DescriptionA jrxml which uses a scriptlet is failing to execute in TIBCO Jaspersoft® Studio 7.3.1. The error is: cannot be resolved to a type, like: ResolutionThis typically means the scriplet class has not been added to the Studio classpath (Project > Properties > Java Build Path> Libraries). But there is a defect in which the classpath is being ignored with regard to scriplet classes. This defect only occurs in 7.3.1, you can upgrade to Studio 7.5.0 to bypass it Ref. Case 01846260
  12. Are Studio and the java app on the same machine? If not, fonts could be the issue, and font extensions the resolution.
  13. Issue DescriptionSome customers add jndi resources, like database connections, after deployment by manually editing META-INFcontext.xml in the appserver's deployment directory, some would like one set in a scripted fashion during deployment. ResolutionTo ensure a new resource is added to context.xml during deployment (via js-install, js-ant deploy-webapp-pro, etc), simply edit buildomaticconf_sourcetemplateswebappMETA-INFcontext.xml. Clone one of the pre-existing resources and use syntax applicable to your specific JDBC driver Reference information on jndi resources can be found in the Data Sources section of the Admin guide: https://community.jaspersoft.com/documentation/tibco-jasperreports-server-administrator-guide/v750/jndi-data-sources Ref. Case 01843234
  14. Issue DescriptionCustomer encounters error in logs: [toc]2020-Feb-04 18:30:21,908 net.sf.ehcache.store.disk.DiskStorageFactoryERROR Disk Write of com.jaspersoft.jasperserver.api.metadata.user.service.impl.ProfileAttributeCacheKey@46180d93 failed:java.io.NotSerializableException: com.jaspersoft.jasperserver.api.metadata.user.service.impl.ProfileAttributeCacheKey at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:441) at net.sf.ehcache.Element.writeObject(Element.java:835) at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1128) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) at net.sf.ehcache.util.MemoryEfficientByteArrayOutputStream.serialize(MemoryEfficientByteArrayOutputStream.java:97) at net.sf.ehcache.store.disk.DiskStorageFactory.serializeElement(DiskStorageFactory.java:405) at net.sf.ehcache.store.disk.DiskStorageFactory.write(DiskStorageFactory.java:384) at net.sf.ehcache.store.disk.DiskStorageFactory$DiskWriteTask.call(DiskStorageFactory.java:485) at net.sf.ehcache.store.disk.DiskStorageFactory$PersistentDiskWriteTask.call(DiskStorageFactory.java:1088) at net.sf.ehcache.store.disk.DiskStorageFactory$PersistentDiskWriteTask.call(DiskStorageFactory.java:1072) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)[/code]ResolutionThis can occur if cache isn't configured properly for profile attributes. Out of box in JasperReports Server 7.x, the WEB-INFehcache.xml file has a 'cache' element of name "attributeCache". That element has a few attributes including overflowToDisk="false". If you accidentally set overflowToDisk="true" or if you comment out or remove the "attributeCache" element, then the overflowToDisk attribute will not be properly set and could result in the error above. If you are encountering this error, double-check your ehcache.xml, compare it to the out-of-box file, and ensure the "attributeCache" element exists with attribute overflowToDisk="false". Ref. Case 01843559
  15. Issue DescriptionSeveral Oracle customers with a firewall between their appserver and the Oracle database have encountered dead or hung connections. The main symptom is that an extended period of no activity, the initial connection to Oracle will hang and never return, nor will there be an obvious error in the logs despite validation queries and other jndi properties that appear to test connections or check for abandoned connections. That initial connection could be a report, a repository table hit, etc. Subsequent connections will be fine. ResolutionInternet research indicates the symptom above can occur if Oracle clients when an application or server doesn't appropriately close the connection, but a firewall timeout and the connection's idle timings somehow interfere and corrupts the connection. The property which has helped several customers is the testWhileIdle jndi property. In the jndi resource add: testWhileIdle="true" If testWhileIdle="true" helps, then performance-wise you might want to increase timeBetweenEvictionRunsMillis and minEvictableIdleTimeMillis as defined here: https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html Ref. Case 01828915
  16. Issue DescriptionAn error can occur if the Simba driver name, for certain Simba drivers, isn't matching what is expected in the TIBCO JasperReports® Server config files: "[simba][JDBC](10220) Driver does not support this optional feature." This is error is visible when hitting "test connection" of a newly created datasource, as well as other cases of usage, like running reports that are associated with the datasource. ResolutionThe error is occurring because the particular Simba Driver doesn't support autocommit. The resolution is to add the jdbc driver's class name to the list of configured drivers which have autoCommit turned off. To do this, determine your classname, which is the name provided alone with the jdbc url when defining connections, then edit WEB-INFapplicationContext.xml. My classname is com.simba.spark.jdbc41.Driver. So in 7.2.0 find the three entries containing com.simba.spark.jdbc.Driver and change them to com.simba.spark.jdbc41.Driver Effectively you are telling JasperReports® Server that the driver className above should not use autocommit functionality during the queries. In other JasperReports Server versions, or with other versions of the JDBC Driver, if your classname is different or missing from the list then find the classname and add it to the autoCommitUnsupportedDrivers properties: Ref. Case 01807000
  17. .getEnd() or .getStart() will return the actual java.util.Date value if that's what you need. http://jasperreports.sourceforge.net/api/net/sf/jasperreports/types/date/DateRange.html
  18. Issue DescriptionReport virtualization is a means for JasperReports® API to limit memory consumption in certain circumstances by writing temporary data to disk instead of storing it all in memory at once (see Virtualizers). But for a particular designs that are exported as unpaginated, the report virtualizer doesn't seem to perform it's job because the customer sees a surprisingly large spike in RAM, relative to other large reports, only when this specific report runs. The spike drops eventually via typical garbage collection (on user session end, for example). ResolutionReport virtualization works for unpaginated reports with elements placed directly on the page (by breaking large pages into chunks and virtualizing the chunks). But it does not work for unpaginated reports that contain a frame element that contains a large number of elements. Having a large table element in a unpaginated report is such a case, the table will create a frame element that holds all elements produced by the table. The reason for that has to do with how virtualization is implemented, at this moment virtualization applies to the list of elements in a report page, and not to the list of elements in a frame. A feature request has been created to improve this scenario. A workaround is to use pagination if you are going to use large table components with large amounts of output, or to rewrite your report design to still be tabular, but not using the table component. Ref. Case 01765935
  19. Issue DescriptionA customer's report is fine for all exports accept for docx, in which it yields an exception: java.lang.IndexOutOfBoundsException: row index 1 out of bounds, size 1 ResolutionThe JasperReports® API docx output is generated in the form of a table which contains report elements within its cells. The docx table specifications allow up to 63 columns and up to 32767 rows in a table. In the case of large reports these limitations may cause a document failure like the one indicated by the customer. Since the problem is due to size of the report output, you may need to reduce the amount of data, modify the report layout, or try a property which might minimize the number rows and columns number in the generated document. The property , net.sf.jasperreports.export.docx.frames.as.nested.tables=false can be set globally in jasperreports.properties or within the individual jrxml.
  20. Issue DescriptionA customer tried to stack elements, on top of each other via same x,y and height, knowing he'd use "Print When" expressions to conditionally. He found difficulty specifically when attempting this inside a table component ResolutionCells in tables by default have a "Layout Manager" attached, which means that Studio tries to arrange the contained elements automatically. The type of layout can be modified by selecting the cell in the outline and change it in the properties. In this case you'd want to select Free Layout, to be able to overlap the items.
  21. Issue DescriptionBy default, when parameters are published from TIBCO Jaspersoft Studio to TIBCO JasperReports Server, an Input Control is created and the resource ID and label have the same value, which is based upon the parameter element's name attribute. Thru the TIBCO JasperReports Server UI you can edit the label, or you can use Studio to specify the label prior to publish. ResolutionSet the com.jaspersoft.studio.js.ic.label property on the parameter's element to specify a label. For example: <parameter name="City" class="java.lang.String"> <property name="com.jaspersoft.studio.js.ic.label"> <![CDATA["Customer City Name"]]> </property> <parameterDescription> <![CDATA["City parameter for controlling where clause"]]> </parameterDescription> <defaultValueExpression> <![CDATA["Raleigh"]]> </defaultValueExpression> </parameter>
  22. Issue DescriptionSome customer's desire for their connection to JasperReports Server to use a particular TLS version after they've followed the Studio User Guide's section "Connecting to JasperReports Server Over SSL" ResolutionYou can specify the TLS version via JVM/Java arguments. These arguments can be added to the Jaspersoft Studio Professional.ini file, and they'll adhere after a restart of Studio. For example to force TLS version 1.2 try: -Ddeployment.security.TLSv1.2=true
  23. Issue DescriptionIn Jaspersoft Studio 7.1.0 it is possible to make Studio offer it's own SSL client-side certificate in a mutual authentication scenario in which the both the server and the client provide their own certificate for authentication to each other. Resolution - basic stepsNOTE: Please note that the use of client-side certificates is only supported by the Jaspersoft Community (community.jaspersoft.com). TIBCO Jaspersoft Technical Support and Engineering do not support it. First, create the certificate: Before you begin, make sure you have configured your application server to require client-side certificates. Then create a client certificate as a Java keystore file, for example, client_keystore.jks. Consult the documentation your application server the Java documentation for keytool or other tools used for certificate and/or java keystore creation. Second, configure Studio. Studio can make use of a jks or pkcs12 store. You define the location of your keyStore via either JVM arguments or via Studio's Key Store user-interface. Via JVM Arguments: 1. From the command line on the client machine running Studio, import the store file, for example, client_keystore.jks, into your keystore on the client machine. (Create a new keystore if necessary). Consult the documentation for Java's keytool. WARNING: A client-side certificate contains a public key for the client. Make sure to follow your corporate security policies when creating, copying, and using client-side certificates. 2. Start Studio using JVM arguments by editing the Jaspersoft Studio Professional.ini file: -Djavax.net.ssl.keyStore specifies the keystore file. -Djavax.net.ssl.keyStorePassword specifies the passphrase of the keystore. -Djavax.net.ssl.keyStoreType specifies the store type Via Jaspersoft Studio's Key Store Interface: In this case, you do not have to add JVM arguments when you start JSS. 1. In JSS, go to Preferences->Jaspersoft Studio->JasperReports Server->Key Store 2. Click Add and select the keystore you created.
  24. Issue DescriptionUpon upgrade to 7.2, a customer using Oracle as the respository noticed new tables that were prefixed with HT_, like HT_JIQUERY, etc ResolutionJRS uses the Hibernate API to interact with the various "flavors" of database that we support. The HT_tables are Hibernate 5.x temporary tables - they are used to speed up bulk operations during update and delete sequences during install scripts, startup and runtime of TIBCO Jasper.Reports® Server. If for some unknown reason you didn't want these tables, this can be turned off though we only tested with them "on". To turn the feature try defining "bulk_id_strategy" in "sessionFactory" of WEB-INFapplicationContext.xml, like: <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean" ........ ........... <property name="hibernateProperties"> <props> <prop key="hibernate.hql.bulk_id_strategy">STRATEGY_NAME</prop> .............. </props> </property> ................ </bean>Prior to turning this feature off you should do performance testing with and without to determine any detrimental impact of removal. More info on this can be found in Hibernate Docs: https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#batch-bulk-hql-strategies Ref. Case 01794419 /strong>
  25. Issue DescriptionA customer applied an OS patch and immediately their reports began to fail when users tried to run them. The exception in the jasperserver.log was: java.lang.ArrayIndexOutOfBoundsException: 0 at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:75) at sun.font.CompositeStrike.getFontMetrics.... The stacktrace indicated that the exception was thrown during report-fill ResolutionA bug in the redhat patch is breaking the JVM's ability to fetch font. See the two links below: https://bugzilla.redhat.com/show_bug.cgi?id=1484079https://stackoverflow.com/questions/45569367/upgrade-rhel-from-7-3-to-7-4-arrayindexoutofboundsexception-in-sun-font-composiThe second link above describes a workaround involving an edit to local.conf, but we recommend you ask redhat their thoughts. For background, TIBCO JasperReports® Server needs a physical font file (.ttf) at runtime. You can associate specific .ttf with reports via our font-extensions feature, if you haven't done this, then JasperReports® Server relies on the Java Virtual Machine (JVM) and the JVM relies on the OS. Essentially the JVM has logical and physical font mappings and the redhat update seems to have change something at the physical font level OR perhaps at a JVM level. If you cannot change local.conf, a font-extension might help avoid the error if you specify a .ttf for the 'default' font in JasperReports®​​​​​​​ Server. The default font comes from a property, which is this value out-of-box: net.sf.jasperreports.default.font.name=SansSerif So theoretically you could create a font-extension for SansSerif in which you define the ttf to be used for font family name "SansSerif" For information on creating font extensions please see the Fonts chapter in the Studio user guide - https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v720/working-font-extensions-0 Ref. Case 01794343
×
×
  • Create New...