Jump to content

Jim W

Jaspersoft Staff
  • Posts

    426
  • Joined

  • Last visited

 Content Type 

Forum

Downloads

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Security Advisories

Events

Profiles

Everything posted by Jim W

  1. Problem Description:When creating an Ad Hoc date or timestamp filter in the Ad Hoc designer, you enter a date or timestamp, you see the following error: ! Invalid timestamp. Use relative date keywords or correct timestamp format. ! Invalid date. Use relative date keywords or correct date format. Either you had entered a date in incorrect format, or there is an error in the configuration. We are addressing the latter possibility here. Solution:If you had changed the configuration file jasperserver_config.properties files to support a certain date or timestamp format and it is not behaving as expecting. You might have made a mistake in the configuration. Note that in the configurations above the comments block, y represents 1 digit. After the comments, y represents 2 digits. Check and be sure that you have entered the correct number of y's for the year format. For example, For a 2-digit year case:date.format=MM/dd/yydatetime.format=MM/dd/yy HH:mm:sstime.format=HH:mm:sscalendar.date.format=mm/dd/ycalendar.datetime.format=mm/dd/y HH:mm:sscalendar.time.format=HH:mm:ssvalidation.date.pattern=/^\d{2}/\d{2}/\d{2}$/validation.datetime.pattern=/^\d{2}/\d{2}/\d{2}\s\d{2}:\d{2}:\d{2}$/validation.time.pattern=/^\d{2}:\d{2}:\d{2}$/[/code]For a 4-digit year case: date.format=MM/dd/yyyydatetime.format=MM/dd/yyyy HH:mm:sstime.format=HH:mm:sscalendar.date.format=mm/dd/yycalendar.datetime.format=mm/dd/yy HH:mm:sscalendar.time.format=HH:mm:ssvalidation.date.pattern=/^\d{2}/\d{2}/\d{4}$/validation.datetime.pattern=/^\d{2}/\d{2}/\d{4}\s\d{2}:\d{2}:\d{2}$/validation.time.pattern=/^\d{2}:\d{2}:\d{2}$/[/code]
  2. Problem Description:Suppose you have a text field that can contain a variable number of characters. However, you do not want the field to expand when there are more characters. Instead, you want the characters to be displayed in a smaller font so that all characters are displayed inside the field without truncation. As of v7.2.0, there is no field property that can do this. See below for a workaround. Workaround:Ideally, there should be a text field property that can do this automatically. Or, at least a way to do something like fontSize=$V{sizeByNumChars} so that you can make your own calculations. For now, you can try conditional styling before an enhancement is implemented. For example, if the number of characters is between 1 and 10, you would display the characters with fontSize 24. You can add more conditions for different font sizes. <style name="Table_TD_EXAMPLE" mode="Opaque" forecolor="#FF0000" backcolor="#FFFFFF" hTextAlign="Left" vTextAlign="Middle" isUnderline="true"> <box> <topPen lineWidth="1.0" lineStyle="Solid" lineColor="rgba(0, 0, 0, 0.11764706)"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="rgba(0, 0, 0, 0.11764706)"/> <bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="rgba(0, 0, 0, 0.11764706)"/> <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="rgba(0, 0, 0, 0.11764706)"/> </box> <conditionalStyle> <conditionExpression><![CDATA[$V{numChars}>0 && $V{numChars}<=10]]></conditionExpression> <style forecolor="#8CC63F" backcolor="#FFFFFF" fontSize="24"/> </conditionalStyle></style>[/code]
  3. Problem Description:While trying to create a derived table in the domain designer, if you run the query, it is picking up column names from table definition and not names in the sql. For example: If Column Name is NAME and Column Label is 8 CHAR NAME It is using "8 CHAR NAME" as column name, and trying to query on table and hence no column found with name of "8 CHAR NAME". Caused by: com.jaspersoft.commons.dataset.DataSetException: Exception calling JRDataSource.next() for query select "8 CHAR NAME" from ABC group by "8 CHAR NAME" fetch first 1000 rows only[/code]Solution:In applicationContext-semanticLayer.xml <bean name="jdbcMetaConfiguration" class="com.jaspersoft.commons.semantic.metaapi.impl.jdbc.JdbcMetaConfiguration">... <property name="useColumnLabelInDerivedTables"><!-- set 'true' to use getColumnLabel() for column references, 'false' to use getColumnName() --><value>true</value></property>[/code]Set the value to false.
  4. Problem Description:Suppose you want to set up a derived table query for one user, but you want this query to behave differently for different users. Let us take a simple example of trying to set a query limit for different users. Solution:You can set up derived table query to use profile attribute to limit a query. For example: select * from emails {attribute('query_limit')}. Create user1 with attribute query_limit set to "limit 1000" (or any other limit value) Create user2 with empty query_limit attribute When user1 logs in, final SQL for the derived table will be: select * from emails limit 1000 # (attribute placeholder will be replaced with its value)[/code]It will fetch only the first 1000 values. As such, you can design an Adhoc View that can behave accordingly. When user2 logs in (with empty attribute), the final SQL will be: select * from emails # (w/o any limits)[/code]It will fetch all available data from the database.
  5. Problem Description:You are using TIBCO JasperReports® Server, Visualize.js to display a report. You are getting the following error message in the Console tab of the browser DevTools panel from hitting F12 to get a HAR trace. x Failed to load resource: the server responded with a status of 404 (Not Found)x Refuse to Display 'http://mycompany.com:31231/myserver/abc.htm' in a frame because it set 'X-Frame-Options' to 'sameorigin'.[/code]Solution:Although there might be other causes, one possibility is that the Apache server has this restriction set to disallow loading of resources in an iframe outside of its domain. See the following article for examples on how to configure the response header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options[/code]Contact your server administrator [example: mycompany.com:31231] to confirm.
  6. Problem Description:You are making the following RESTv2 call to your TIBCO JasperReports® Server instance for creating or updating a userwith superuser credentials. [toc]http://mycompany:8080/jasperserver-pro/rest_v2/users/testuser01[/code]Basic Auth: superuserJson Body: { "fullName" :"Test User", "emailAddress" :"abcuser@example.com", "enabled" :"false", "password" :"abcd", "roles" :[{"name":"ROLE_USER"}]}[/code]You get the following error in the error log jasperserver.log: ERROR CsrfGuard,http-bio-8080-exec-1:44 - potential cross-site request forgery (CSRF) attack thwarted (user:<anonymous>, ip:10.111.123.123, method:PUT, uri:/jasperserver-pro/rest_v2/users/testuser01, error:required token is missing from the request)[/code]Solution:There could be many scenarios when you might get this error. If CSRF attack is unlikely, the cause may be simple. In this case, a user was using the Firefox REST client extension and signed into jasperserver at the same time. Try to use a standalone REST client instead.
  7. Problem Description:You are trying to output a report to an SFTP connection, requiring a PPK private key. However, you are unable to import the private key into the jasperreports server instance. You get the following error: ERROR FtpConnectionStrategy, Failed to read the SSH Private Key from repository[/code]The procedure you followed was [as described in the TIBCO JasperReports® Server Administrator Guide ]: Uploading an SSH Private Key File to the Repository, JasperReports Server allows you to export scheduled reports or dashboards over SFTP to an FTP server. If the FTP server uses SSH key authentication, you will need to upload a SSH private key file to the repository as a Secure File resource. While the SSH private key is being used in a scheduled report or dashboard job, it cannot be deleted from JasperReports Server. To upload an SSH key file to the repository: Log into JasperReports Server as an administrator.Click View > Repository and expand the folder tree.Browse to the folder where you want to save the SSH key.Right-click the folder and select Add Resource > File > Secure File from the context menu.Click Choose File to locate and upload the SSH key file.Enter a name and resource ID for the file.Click Submit to save the file to the repository.Solution:If you did not make any mistakes or typos when following the above procedure, most likely, this is a firewall issue. Contact your network administrator.
  8. Problem Description:Suppose you have been working on automating a process to update jobs/schedules for users. For example, you want to update email related information. You set up the RESTv2 call passing in the JSON object to update just the email address. It is not working for you. [toc]Json object:{ "mailNotification": {"toAddresses": {"address": ["email@email.com"]}}}[/code] update url: https://mycompany.com/jasperserver-pro/rest_v2/jobs?id=1[/code]Response: 200 You are logged into the server when posting this request. A response of 200 should mean that the update is successful. However, in reality, the schedule has not been changed. Solution:If we want to create or read a job, you can use the usual (parent) object name, like "mailNotification", but if you want to update some object you must use model object name, like "mailNotificationModel". See details in the JasperReports-Server-REST-API document section 17.7 "Updating Jobs in Bulk"
  9. Problem Description:Suppose you have an HTML5 multiaxis chart with both primary and secondary axes on the left side. You want to put the primary axis on the left side and the secondary axis on the right side. Solution:<hc:chartSetting name="default"> <hc:chartProperty name="yaxis.opposite" value="true"/> </hc:chartSetting>
  10. Problem Description:Especially after import with --all option, sometimes the repository screens are messed up. That is, layout components are not aligned or style components are missing. Generally, the discrepancy can be resolved by importing the /root/Themes folder from a standard install of the same version of jasperserver to restore the default files. These files may have been inadvertantly deleted or altered for some reason. Perhaps when adding customizations to the Themes folder. If the above solution does not work, there is also another possible cause. Check and see if you are running on a cluster with a loadbalancer. If so, the cause is external. Examine the HAR trace to see what files might be missing or if there are any errors. Solution:The problem may be related to serving static content such as CSS, Javascript, images etc. There usually are load balancing rules that determine how to deal with these types of files. Since all these files are within the TIBCO JasperReports® Server web applicatoin, the user needs to be logged in to get them. Sticky session needs to work for these. The theme.css file is actually dynamic content that has to come from the logged in JasperReports® Server instance. Work with your IT administrator to make sure that these files can come through the load balancer.
  11. Problem Description:A jasperserver instance with SAML custom SSO implementation may encournter the following error in the log when a report is run. Furthermore, the input control does not show up at all when you run the report. If you click on the input control icon in the top menu, it displays a completely blank dialog. [Versus, a dialog with drop down but no content.] 2019-10-22 08:43:33,104 ERROR SAMLUserDetailsServiceImpl,http-nio-8080-exec-8:149 - Roles not found for role attribute User Type : null At least in this case, it is not referring to jasperserver user attribute User Type. "Roles" is in fact, referring to the jasperserver ROLE. Solution:Work with SAML developer to check what jasperserver ROLE it is expecting. User may have correct ROLE, but SAML might be looking for a ROLE from a different organization. Hence the error.
  12. Problem Description: You have applied a cumulative hot patch and you are getting the following error in the log. SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [standardEngine[Catalina].StandardHost[localhost].StandardContext[/jasperserver-pro]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1874) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 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) Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/jasperserver-pro] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [tibcosoftware.jdbc.cassandrabase.ddc1->tibcosoftware.jdbc.cassandrabase.ddc4->tibcosoftware.jdbc.cassandrabase.dddb->tibcosoftware.jdbc.cassandrabase.ddc1] Resolution: For this particular case, the error is the result of *NOT DELETING* TIcassandra-6.0.1.jar as part of the hotfix_JRSPro7.1.0_cumulative_20180810_0504.zip The delete instruction is in the README file. * Delete the files listed in the section "Deleted files" from the web application files structure. Deleted files: WEB-INF/lib/TIcassandra-6.0.1.jar
  13. Problem Description: When scheduling a report from JasperETL to be run and sent out via email the email with the report never gets there. The problem is JasperETL does not support encryption for email out of the box. Exchange server will only accept email encrypted with 256bit encryption Workaround: Talend studio does not provide encryption component. But for tSendMail component, once you enable SSL connection, all traffic that travels over an SSL connection is encrypted, whether it's a Web page, a file or, in this case, an email attachment traveling between a mail client and an SMTP (Simple Mail Transfer Protocol) or IMAP server. Over an SSL connection, the email message and attachment both use SMTP and may travel between several machines before ending up in the recipient's email inbox. When you send an email and an attachment via SSL, it travels from the PC to the office email server. Once the recipient collects the email, the message and attachment travel again via SSL to the client PC. Since SSL supports encryption of the email, here is a method on how to use SSL to send mail with attachment safely. 1. Get cert file from SMTP server, the example is based on Gmail SSL connection: 1.1 execute opessl command to get a certificate from Gmail SMTP server: $ openssl s_client -connect smtp.gmail.com:465 1.2 copy and paste the certification part from the previous command execution to a text editor, from "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"(include the "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----"), save the text as file "gmail.cer" https://tlnd-prod--c.na33.content.force.com/sfc/dist/version/download/?oid=00D70000000Mzxj&ids=06839000005yt8A&d=%2Fa%2F39000000kdp0%2FU7MwinDmnsBfbv3kmiGWlWghUUcLmNODo8rF8mivdLA&asPdf=false 2. import certification to jave keystore file, input keystore password according to the prompt. $ keytool -import -alias smtp.gmail.com -keystore "C:UsersaaDesktopgmail-keysore.jks" -file "C:UsersaaDesktopgmail.cer" 3. design a job using tSetKeystore component, point to "TrustStore file" to gmail-keysore.jks location, set "TrustStore password" to keystore password from step 2. 3.1 tSetKeystore Inline Image: Annotation 2019-03-17 164803.jpg (https://tlnd-prod--c.na33.content.force.com/sfc/dist/version/download/?oid=00D70000000Mzxj&ids=06839000005yt7q&d=%2Fa%2F39000000kdog%2FUty0TuLgeKiNW2wE03X2VQL4HCMS5ZpuTOBDfWoMyQo&asPdf=false) 3.2 tSendMail Inline Image: Annotation 2019-03-17 164944.jpg (https://tlnd-prod--c.na33.content.force.com/sfc/dist/version/download/?oid=00D70000000Mzxj&ids=06839000005yt7v&d=%2Fa%2F39000000kdol%2F_31ZkxRpWTC7gDki0BEPGwN.c6_U7kyYnTyWuhKkcY0&asPdf=false) (on Gmail security, you need to set Allow less secure apps: ON if you activate "Need authentication") Inline Image: Annotation 2019-03-17 165530.jpg (https://tlnd-prod--c.na33.content.force.com/sfc/dist/version/download/?oid=00D70000000Mzxj&ids=06839000005yt80&d=%2Fa%2F39000000kdoq%2Fr6A6GPTpGrLMQ042wjv63lnyv6sYKs5tOkQ8l1DKTME&asPdf=false)
  14. Problem Description:You are running a report and there are extra blank pages added to the report. There are many reasons why a blank page is added to the report. In this particular case, 3 blank pages were added to the report. Check the following settings and see if they are both set to true. Solution:The blank pages are a result of subgroup setting isStartNewPage=true and isStartNewColumn=true
  15. Problem Description:Characters are nomally displayed horizontally in a text field. For example, ABCDEFG. Is there a text property to make the text display vertically? WorkaroundThere is no text property to make a string display vertically. You can try the following workaround. Insert carriage return line feed between characters: A /r/n B /r/n C /r/n D /r/n E /r/n F /r/n G /r/n You will end up with: A B C D E F G
  16. Problem Description:Using /WEB-INF/applicationContext-externalAuth-preAuth-mt.xml on v7.2.0, yields the following error. The same configuration file used to work on v7.1.0 perfectly. 2019-08-30 19:02:59,710 ERROR ContextLoader,localhost-startStop-1:350 - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'proxyPreAuthenticatedProcessingFilter' defined in ServletContext resource [/WEB-INF/applicationContext-externalAuth-preAuth-mt.xml]: Cannot resolve reference to bean 'preAuthenticatedManager' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'preAuthenticatedManager' defined in ServletContext resource [/WEB-INF/applicationContext-externalAuth-preAuth-mt.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'providers' of bean class [com.jaspersoft.jasperserver.api.security.externalAuth.wrappers.spring.JSProviderManager]: Bean property 'providers' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? Solution:The configuration file /WEB-INF/applicationContext-externalAuth-preAuth-mt.xml on v7.2.0 is slightly different than v7.1.0. You must add your custom changes to the new v7.2.0 sample file instead of just copying the v7.1.0 configuration file over to v7.2.0.
  17. Problem Description:If you have a main and drill down report set with input controls, when you hit the Back button from the drill down report to get back to the main report, the values entered earlier in the main report may be cleared. This may be the case when you upgrade from a v6x version such as v6.2.0 to v7.1.1. When you return from a drill down report via the Back button, the original input control values entered into the main report should be retained so that the main report is redisplayed accordingly as filtered by the input control values. This behavior works correctly on v6.2.0 as well as v7.2.0. It fails on v7.1.1. Solution:Apply the cumulative patch hotfix_JRSPro7.1.1_cumulative_20190722_1350 or upgrade to v7.2.0. There is no specific bug report associating with this behavior in the cumulative patch package. Please open a new case to log a bug report if you see the incorrect behavior in latest versions.
  18. Problem DescriptionNormally, if you are using the following name and key in jasperreports.properties for displaying GeoAnalytics map, it should work. com.jaspersoft.jasperreports.tibco.maps.customer.name=myname com.jaspersoft.jasperreports.tibco.maps.customer.key=jDZ76WBa8TE=There is one situation when these values are ignored and an error is displayed in the browser debug panel [F12] Console tab, Uncaught Error: Please set the geocoder customer and key. The problem is not the equal sign in the key. This problem can happen in the following situation. You entered the name and key values in Jaspersoft Studio Tibco Maps properties. The report works fine in Jaspersoft Studio, or as a report published from Jaspersoft Studio to a jasperserver installation. However, if you blank out these values in the jrxml, and expect jasperserver to read the name and key from jasperreports.properties. For example,<c:itemProperty name=""/> <c:itemProperty name=""/>jasperreports library will ignore the name and key defined in jasperreports.properties. Hence, the error. This is a bug being addressed as JRL-1400 to be fixed in a future release. Workaround:Remove these 2 lines from the jrxml entirely: <c:itemProperty name=""/> <c:itemProperty name=""/>
  19. Description:You are getting an ObjectNotFoundException from Hibernate with the message subject of: This error occurs only when you click the "View List" quick link under "Reports" on the default home page. A workaround is to navigate to View > Repository in orders to select the desired report to run. 2017-07-11 14:32:14,705 ERROR ErrorPageHandlerAction,[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)':118 - Error UID a3c8f9a0-333a-4a39-9f2b-5e530b1bc7e6org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoUser#5961]at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:419)at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:154)at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:143)at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:174)at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)at com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoUser_$$_javassist_19.toClient(RepoUser_$$_javassist_19.java)[/code]Resolution:Most likely, there were changes made to the repository and this is a side effect. In fact, in this particular case, the developer had deleted some rows in the database manually. We highly recommend using only the officially supported APIs to make any changes to the repository. These APIs are certified and maximize compatibility of customization between versions. You can also use the export/import functions to make changes more safely. Direct repository DB modification is highly risky and should not be used unless it is a critical recovery issue with clear and specific understanding of the change involved. You should always keep a DB backup before making any changes for easy recovery. In this particular case, the rows were removed from this table. System ran fine after restoring the deleted rows. SELECT * FROM JASPERSERVER.JIUSER AS OF TIMESTAMP TO_TIMESTAMP('01-JUL-2017 12:30:00', 'DD-MON-YYYY HH:MI:SS') [/code]
  20. Description:You are trying to upgrade to 6.3.4 by running the js-upgrade-samedb.bat script but you are getting an error. It simply says.... [toc]BUILD FAILEDC:JSupgrade64buildomaticbindb-common.xml:940: The following error occurred while executing this line:C:JSupgrade64buildomaticbinimport-export.xml:332: The following error occurred while executing this line:C:JSupgrade64buildomaticbinimport-export.xml:203: Java returned: 1[/code]The full log file is as follows..... ----------------------------------------------------------------------Running JasperReports Server upgrade script at 2017-06-30_17-38----------------------------------------------------------------------WARNING: JAVA_HOME environment variable not found[default]Running upgrade-minimal-pro Ant task----------------------------------------------------------------------Buildfile: C:JSupgrade64buildomaticbuild.xml[echo] Filtering properties (cleaning out blank spaces)[echo] chkIfPackageManagedTomcat: check if package managed tomcat[echo] Tomcat DBCP Factory: com.jaspersoft.jasperserver.tomcat.jndi.JSCommonsBasicDataSourceFactory[echo] creating C:/JSupgrade64/buildomatic/build_conf/default[delete] Deleting directory C:JSupgrade64buildomaticbuild_confdefault[mkdir] Created dir: C:JSupgrade64buildomaticbuild_confdefault[copy] Copying 1 file to C:JSupgrade64buildomaticbuild_confdefault[copy] Copying 1 file to C:JSupgrade64buildomaticbuild_confdefault[copy] Copying 1 file to C:JSupgrade64buildomaticbuild_confdefault[copy] Copying 1 file to C:JSupgrade64buildomaticbuild_confdefault[copy] Copying 1 file to C:JSupgrade64buildomaticbuild_confdefault[echo] chkAndSetLocaleDbSettings: dbType is postgresql[echo] chkAndSetLocaleDbSettings: db.set.lc_collate and db.set.lc_ctype are NOT both set[echo] chkAndSetLocaleDbSettings: parse: scripts.properties for db commands[copy] Copying 36 files to C:JSupgrade64buildomaticbuild_confdefault[copy] Copying 1 file to C:JSupgrade64buildomatic[copy] Copying 1 file to C:JSupgrade64buildomaticbuild_confdefaultwebappWEB-INF[echo] chkIfPackageManagedTomcat: check if package managed tomcat[echo] using settings file: C:/JSupgrade64/buildomatic/build_conf/default/maven_settings.xmlset-minimal-mode:gen-config:[echo] Regen config files if they have already been cleaned:[echo] currentConf= C:/JSupgrade64/buildomatic/build_conf/default[echo] chkIfPackageManagedTomcat: check if package managed tomcat[echo] Tomcat DBCP Factory: com.jaspersoft.jasperserver.tomcat.jndi.JSCommonsBasicDataSourceFactory[echo] chkAndSetLocaleDbSettings: dbType is postgresql[echo] chkAndSetLocaleDbSettings: db.set.lc_collate and db.set.lc_ctype are NOT both set[echo] chkAndSetLocaleDbSettings: parse: scripts.properties for db commandstest-pro-all-props:[echo] Checking properties:[echo] dbType=postgresql[echo] dbHost=localhost[echo] dbUsername=postgres[echo] dbPassword=**********[echo] dbPort=5432[echo] js.dbName=jasperserver[echo] sugarcrm.dbName=sugarcrm[echo] foodmart.dbName=foodmart[echo] webAppNamePro=jasperserver-pro[echo] appServerType=tomcat[echo] appServerDir=C:Jaspersoftjasperreports-server-6.3.0apache-tomcatcheck-dbtype-for-upgrade-pro:do-install-upgrade-test:[echo] Checking DBMS host and port:[echo] About to validate port: localhost:5432[echo] Port 5432 is OK[echo] Done validating port: localhost:5432[echo] Validating administrative database connection at jdbc:postgresql://localhost:5432/postgres. Phase: [test][echo] For JDBC driver the artifactId and version properties are set:[echo] maven.jdbc.artifactId=postgresql[echo] maven.jdbc.version=9.4-1210.jdbc41[echo] Specified JDBC driver jar exists[advanced-sql] Executing commands[advanced-sql] 1 of 1 SQL statements executed successfully[echo] Connection OK[echo] Validating JasperServer database connection at jdbc:postgresql://localhost:5432/jasperserver. Phase: [test][echo] For JDBC driver the artifactId and version properties are set:[echo] maven.jdbc.artifactId=postgresql[echo] maven.jdbc.version=9.4-1210.jdbc41[echo] Specified JDBC driver jar exists[advanced-sql] Executing commands[advanced-sql] 1 of 1 SQL statements executed successfully[echo] Connection OKdo-pre-upgrade-test:pre-upgrade-test-pro:upgrade-js-pro-db-minimal:upgrade-6.3-6.4-pro:[echo][echo] currentSqlDir = C:/JSupgrade64/buildomatic/install_resources/sql/postgresql[echo] dbType = postgresql[echo][echo] run script: C:/JSupgrade64/buildomatic/install_resources/sql/postgresql/upgrade-postgresql-6.3.0-6.4.0-pro.sql[echo] For JDBC driver the artifactId and version properties are set:[echo] maven.jdbc.artifactId=postgresql[echo] maven.jdbc.version=9.4-1210.jdbc41[echo] Specified JDBC driver jar exists[advanced-sql] Executing resource: C:JSupgrade64buildomaticinstall_resourcessqlpostgresqlupgrade-postgresql-6.3.0-6.4.0-pro.sql[advanced-sql] Failed to execute: create index JIResourceFolder_hidden_index on JIResourceFolder (hidden)[advanced-sql] org.postgresql.util.PSQLException: ERROR: relation "jiresourcefolder_hidden_index" already exists[advanced-sql] 0 of 1 SQL statements executed successfullyimport-minimal-for-upgrade-pro:[echo][echo] Property values (in install.xml):[echo] archiveArg = --input-zip=C:/JSupgrade64/buildomatic/install_resources/export/js-catalog-postgresql-minimal-pro.zip[echo] dbType = postgresql[echo] jdbcJar = postgresql-9.4-1210.jdbc41.jar[echo] currentConf = C:/JSupgrade64/buildomatic/build_conf/default[echo] importExportConfig = C:/JSupgrade64/buildomatic/conf_source/iePro[echo][echo] Validating JasperServer database connection at jdbc:postgresql://localhost:5432/jasperserver. Phase: [import-export-test][echo] For JDBC driver the artifactId and version properties are set:[echo] maven.jdbc.artifactId=postgresql[echo] maven.jdbc.version=9.4-1210.jdbc41[echo] Specified JDBC driver jar exists[advanced-sql] Executing commands[advanced-sql] 1 of 1 SQL statements executed successfully[echo] Connection OK[java] Error occurred during initialization of VM[java] Could not reserve enough space for 2097152KB object heap[java] Java HotSpot Client VM warning: ignoring option PermSize=64m; support was removed in 8.0[java] Java HotSpot Client VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0BUILD FAILEDC:JSupgrade64buildomaticbindb-common.xml:940: The following error occurred while executing this line:C:JSupgrade64buildomaticbinimport-export.xml:332: The following error occurred while executing this line:C:JSupgrade64buildomaticbinimport-export.xml:203: Java returned: 1Total time: 2 secondsChecking Ant return code: OK[/code]Resolution:This error is a result of trying to apply overlay upgrade to a bundled install of JRS. Per Upgrade Guide: 2.1 Introduction to the Overlay Upgrade
  21. Description:You are trying to compile a few JasperReport files with Highcharts and Fusion components using the JasperReports library. You have the necessary dependencies available including jasperreports-pro and ji-license. You are encountering a NullPointerException from the LicenseManager when compiling the report. [toc]net.sf.jasperreports.engine.JRException: Error compiling report design.at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:247)at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:357)at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:617)at com.ca.uim.cabi.jasper.JasperReportWrapper.loadJRXml(JasperReportWrapper.java:97)... 5 moreCaused by: java.lang.NullPointerExceptionat com.jaspersoft.ji.license.LicenseManager.getInstance(LicenseManager.java:102)at com.jaspersoft.ji.license.JRLicenseProviderAdapter.requireLicense(JRLicenseProviderAdapter.java:75)at com.jaspersoft.ji.license.JRLicenseProviderAdapter.requireFeature(JRLicenseProviderAdapter.java:70)at com.jaspersoft.jasperreports.license.LicenseManager.requireFeature(LicenseManager.java:113)at com.jaspersoft.jasperreports.highcharts.HighChartsUtils.requireHighchartsFeature(HighChartsUtils.java:43)at com.jaspersoft.jasperreports.highcharts.charts.StandardChartComponent.<init>(StandardChartComponent.java:73)at com.jaspersoft.jasperreports.highcharts.charts.ChartCompiler.toCompiledComponent(ChartCompiler.java:69)at net.sf.jasperreports.engine.base.JRBaseComponentElement.<init>(JRBaseComponentElement.java:59)at net.sf.jasperreports.engine.base.JRBaseObjectFactory.visitComponentElement(JRBaseObjectFactory.java:1736)at net.sf.jasperreports.engine.design.JRDesignComponentElement.visit(JRDesignComponentElement.java:105)at net.sf.jasperreports.engine.JRAbstractObjectFactory.getVisitResult(JRAbstractObjectFactory.java:88)at net.sf.jasperreports.engine.base.JRBaseElementGroup.<init>(JRBaseElementGroup.java:83)at net.sf.jasperreports.engine.base.JRBaseBand.<init>(JRBaseBand.java:84)at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getBand(JRBaseObjectFactory.java:533)at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:235)at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:162)at net.sf.jasperreports.engine.JasperReport.<init>(JasperReport.java:94)at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:230)... 8 more[/code]Resolution:Check and make sure that you have these jars in the path: jasperreports-pro-n.n.n.jarjasperreports-license-n.n.n.jarjasperreports-fusion-n.n.n.jar
  22. Description:[toc on_off::hide=1]You are trying to generate carton/box labels using JasperReports. Some of the labels may contain barcodes. You are using Barcode4J with JasperReports for barcode generation. The problem is that the default DPI in the PDF is 72. But you need to increase the DPI to 200. Resolution:Try setting the following property in jasperreports.properties file. net.sf.jasperreports.image.dpi=200
  23. Description:You are following this example in the TIBCO JasperReports® Server Ultimate Guide v6.3.0, "Repository Service API" [toc]===========FilterCriteria filterCriteria = FilterCriteria.createFilter();filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter(folderURI));List resources = repositoryService.loadResourcesList(context, filterCriteria);===========FilterCriteria filterCriteria = FilterCriteria.createFilter(FileResource.class);filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter(folderURI));FilterElementDisjunction fileTypeDisj = filterCriteria.addDisjunction();fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType",FileResource.TYPE_IMAGE);fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType",FileResource.TYPE_JRXML);List resources = repositoryService.loadResourcesList(context, filterCriteria);[/code]The following code would not work when using URI: ExecutionContext ctx = new ExecutionContextImpl();List<String> contextAttributes = new ArrayList<>();contextAttributes.add(ObjectPermissionService.PRIVILEGED_OPERATION);ctx.setAttributes(contextAttributes);FilterCriteria filterCriteria = FilterCriteria.createFilter();filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter(folder.getURI()));List resources = this.repositoryService.loadResourcesList(ctx, filterCriteria);[/code]Resolution:Create the ParentFolderFilter by folder path instead of folder URI. Repository Search Documentation Update You get the list of child resources within a given folder by using filter criteria. The server expects an instance of the com.jaspersoft.jasperserver.api.metadata.view.domain.FilterCriteria class as a parameter in the method call. The list of returned resources matches the selected filter conditions. The only required condition for a FilterCriteria instance is that the returned resources’ parent folder must match a given folder. You will need to set the path to the parent folder. For example: FilterCriteria filterCriteria = FilterCriteria.createFilter();filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter("/examples"));List resources = repositoryService.loadResourcesList(context, filterCriteria);[/code]The loadResourcesList method returns a list of ResourceLookup objects that contain basic resource attributes like the name and label. To retrieve the full resource definition, you must use the getResource method. You can apply further filtering to get a refined list of resources based on a given resource type or other conditions. For example, the following retrieves all the images and JRXML files in a folder: FilterCriteria filterCriteria = FilterCriteria.createFilter(FileResource.class);filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter("/examples"));FilterElementDisjunction fileTypeDisj = filterCriteria.addDisjunction();fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType", FileResource.TYPE_IMAGE);fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType", FileResource.TYPE_JRXML);List resources = repositoryService.loadResourcesList(context, filterCriteria);[/code]
  24. Description:[toc on_off::hide=1]When exporting a report to Excel, the tabs are dynamically named. You can pre-name them with the report property “net.sf.jasperreports.export.xls.sheet.names.all” and the value as “Yearly Results/Year1/Year2/Year3/Year4/Year5/Year6/Year7/Year8/Year9/Year10/Year11/Year12”. However, you might want to display the actual year number. The first page of the report is Detail 1, while the following pages are generated from a sub report in Detail 2. There are some support articles online about placing the dynamic tab property on a report element instead of on the main report. The idea is to place the property “net.sf.jasperreports.export.xls.sheet.name” with an expression of “$F{YEAR2}.toString()” on a sub report element. That may not work for you. The following is an alternative solution. Resolution:Hardcode the first tab name and then automatically generate the dynamic tab names to follow without overwriting anything. Place the following property in the sub report element jrxml: <propertyExpression name="net.sf.jasperreports.export.xls.sheet.name"><![CDATA[$F{YEAR2}]]></propertyExpression> Then place the following property in the main report to hardcode the first tab name: <property name="net.sf.jasperreports.export.xls.sheet.names.first" value="Yearly Results"/>
  25. Description: You can reverse heatmap min and max color using the following advanced property Resolution: colorAxis.stops [[0, "#3060cf"],[0.5, "#fffbbc"],[0.9, "#c4463a"],[1, "#FF0015"]]
×
×
  • Create New...