Jump to content
Changes to the Jaspersoft community edition download ×

dszeto

Members
  • Posts

    127
  • 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 dszeto

  1. Issue DescriptionWhen starting TIBCO JasperReports® Server, the login page does not appear and instead the error message is "this page cannot be displayed". ResolutionTo troubleshoot this, it helps to narrow this down by checking whether the application server itself is running. If, for example, you are using Tomcat and http://yourServer:port loads the Tomcat landing page, then this demonstrates the application server is running. The application server logs will also provide clues as to whether Jasper loaded correctly. For instance, in catalina.out you would see INFO: Deploying web application directory /path/to/jasperserver-pro In this case, this message was not appearing in the logs and upon further review, they had some security enabled that performs automatic redirection of requests and so if the url was https instead of http Jasper would not load.
  2. Issue Description:If my report contains a parameter of type java.util.Collection, how do I print the values in the collection in the report? Resolution:You would first need to convert the collection parameter into a java.util.ArrayList parameter by creating a second parameter of the ArrayList type. You then create a new ArrayList object out of the collection parameter. From this second parameter, you use the subList method to extract elements of the ArrayList to display in for instance, text fields. Attached is an example report that illustrates this. collection.jrxml
  3. Is JasperReportsServer on a different machine? If so, are you able to connect to Mongo using a Mongo client from that machine? That will tell us if the machine or JRS is having issues connecting to Mongo.
  4. Did you import any old data into your new AWS Jasper instance? An old theme imported from an older JasperReportsServer deployment will cause these misalignment issues and if that's the case, re-import the default theme for that version.
  5. How about in your dividend check whether that subtraction is > 0 and if not, set the dividend to 0. Once that is done then you can do an <expression> ? 0 : <result>. I am not sure how you would check if the result of the division is NULL unless you are checking whether the variables themselves are NULL.
  6. If you are using the same JDBC driver in JasperStudio as in your SQL Management Studio, does the query still fail?
  7. You can also restart the app server hosting JasperReportsServer.
  8. Does the subreport run on its own? If yes, where in the main report did you put your subreport? Summary band?
  9. I made a slightly different statement that works for me: $V{Variable_1}.equals("test") ? $F{amount} : ""
  10. Issue Description:How can I configure TIBCO JasperReports® Server to look for users in a multi-organization LDAP? Resolution:You make multiple ldapAuthenticationProvider beans and name them differently. Make multiple userSearch beans, one for each search. Reference the userSearch bean in its corresponding ldapAuthenticationProvider bean's constructor. For the JSDefaultLdapAuthoritiesPopulator constructor under your ldapAuthenticationProvider bean, put in the correct search string for the groups you want to reference (usually this is the same across all ldapAuthenticationProvider beans, but it might not be for your case). In your ldapAuthenticationManager bean, make sure you put all the ldapAuthenticationProvider bean names in the ref local section. The attached sample xml file helps illustrate these instructions. Please customize this to your own local environment. applicationcontext-externalauth-ldap-mt-multiorg.xml
  11. Issue Description: When previewing a report in jasperStudio, the following error occurs: [toc]Error incrementing bidimensional dataset. Error Trace net.sf.jasperreports.engine.JRRuntimeException: Error incrementing bidimensional dataset. at net.sf.jasperreports.engine.analytics.dataset.MultiAxisDataService.addRecord(MultiAxisDataService.java:373) at net.sf.jasperreports.engine.analytics.dataset.FillMultiAxisDataset.customIncrement(FillMultiAxisDataset.java:110) at net.sf.jasperreports.engine.fill.JRFillElementDataset.increment(JRFillElementDataset.java:201) at net.sf.jasperreports.engine.fill.JRCalculator.calculateVariables(JRCalculator.java:191) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:737) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportContent(JRVerticalFiller.java:260) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:103) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:607) at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:123) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:961) at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:169) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$AsynchronousReportFiller.fillReport(EngineServiceImpl.java:912) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1840) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runWithDataSource(EngineServiceImpl.java:1159) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1088) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:983) 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: net.sf.jasperreports.engine.JRException: Crosstab data has already been processed. at net.sf.jasperreports.crosstabs.fill.calculation.BucketingService.addData(BucketingService.java:328) at net.sf.jasperreports.engine.analytics.dataset.MultiAxisDataService.addRecord(MultiAxisDataService.java:369) ... 18 more [/code]Resolution:In the report design a chart that uses a separate subdataset was placed in one of the detail bands. Typically, charts should be placed in a band that only renders one e.g. the summary band for a few reasons: multiple calls will be made for each row rendered to the database slowing down performance output may look confusing to the end user JR will not be able to properly iterate through the returned data, as was the case in this report that caused the error stack trace Moving the chart in this report to the summary band allowed for the report to preview.
  12. dszeto

    Updating CAS beans

    Issue Description:Supposing modifications are made to application-Context xml to dynamically populate certain beans (externalAuthProperties) with a CAS integrated TIBCO JasperReports® Server. Is there a way to read and update the beans without restarting the application server hosting JasperReports® Server? Resolution:Reload the JasperReports Server web application.
  13. Issue Description: When trying to connect to TIBCO JasperReports® Server via TIBCO Jaspersoft® Studio a NullPointerException is generated instead. Resolution:After reinstalling Jaspersoft® Studio and still encountering the exception, check the JVM for any additional arguments and the following is found: java -versionPicked up JAVA_TOOL_OPTIONS: -Djavax.net.ssl.trustStoreType=Windows-ROOTjava version "1.8.0_152" Java SE Runtime Environment (build 1.8.0_152-b16)Java HotSpot 64-Bit Server VM (build 25.152-b16, mixed mode)[/code]The environment variable -Djavax.net.ssl.trustStoreType was removed from the JVM startup and the NullPointerException disappeared, allowing for connection to the JasperReports® Server repository. This variable must point to a certificate/jks file.
  14. Issue Description: When attempting to create a new user via REST API the error code returned is an http 400 error. Resolution:The user being created has several roles associated with it, including ROLE_SUPERUSER. Attempts to replicate in house showed one key difference in our test cases, that being in the in house test case the superuser user was used to login and then submit the request while in the customer's test case, a tenant administrator was used. Tenant administrator users typically do not have the ability to assign that role to users, as this role exists at the root level. Once they used the superuser account, creating the user, succeeded.
  15. Issue Description: I want only a certain group within my Active Directory to be able to login to JasperReportsServer. How do I achieve that? Resolution: What you can do is make sure users get no roles by default when trying to login, and map your LDAP group you want to allow logging in to an internal JasperReportsServer role that allows for login. This is all done within the applicationContext-externalAuth-LDAP-mt.xml file. So for instance you might have something like <bean> <property name="defaultInternalRoles"> <list> </list> </property> <property name="organizationRoleMap"> <--> <!--Example of mapping customer roles to JRS roles <entry> <key> <value>Admin LDAP!</value> </key> <!-- JRS role that the <key> external role is mapped to <value>ROLE_ADMINISTRATOR</value> </entry> </map> </property> </bean>
  16. As a sanity check, if you were to undo everything do you still see two emails sent for the same schedule?
  17. There is a plan in the works to support it.
  18. Is this code being run against a text control? While I don't believe that is going work, perhaps what you can do is set the 'print when' expression of this control to print it if the condition is met, and if not, print another text control that has the dimensions you want based on the same test condition except that you'd test for the opposite case.
  19. You could use a REST call to submit schedules to JasperReportsServer and pass the client ID parameter to the report (assuming client ID is a parameter) and as part of the job descriptor the email address can be added to the 'send to' list.
  20. To get around the problem, submit a scheduled job to run that report and set the output file to PDF. Then use another REST call to download that PDF.
  21. dszeto

    Configuring reverse proxy

    Issue Description:TIBCO JaasperReports® Server is configured behind load balancer and when attempting to login via the TIBCO JaasperReports Server login page, the authentication fails and navigates from /jasperserver-pro/loginsuccess.html page back to /jasperserver-pro/login.html. Resolution:The proxy definition template requires certain rules to dictate to Jasper what content to request from the application once authentication is successful. Below is an example template containing some rules that should be in a proxy definition: # ************************************ <VirtualHost *:443> ServerName external.example.com ## Vhost docroot DocumentRoot "/srv/www/external.example.com" ## Directories, there should at least be a declaration for /srv/www/external.example.com <Location "/"> Order allow,deny Allow from all </Location> <Proxy "*"> Order deny,allow Allow from all </Proxy> ## Logging ErrorLog "/var/log/httpd/external.example.com_error_ssl.log" ServerSignature Off CustomLog "/var/log/httpd/external.example.com_access_ssl.log" combined ## Request header rules ## as per http://httpd.apache.org/docs/2.2/mod/mod_headers.html#requestheader RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-Port "443" ## Proxy rules ProxyRequests Off ProxyPreserveHost On ProxyPass /jasperserver-pro http://internal.example.local:8080/jasperserver-pro ProxyPassReverse /jasperserver-pro http://internal.example.local:8080/jasperserver-pro ## SSL directives SSLEngine on SSLCertificateFile "/etc/pki/tls/certs/ssl.crt" SSLCertificateKeyFile "/etc/pki/tls/private/ssl.key" SSLCertificateChainFile "/etc/pki/tls/certs/chain.crt" # SSL Proxy directives SSLProxyEngine On </VirtualHost> Please note the above template should be customized to the particular environment where this will be deployed.
  22. Issue Description:According to the external authentication cookbook, to synchronize a user's roles in external authentication with the TIBCO JasperReports® Server repository a user must first login. How would synchronizing several users at once be achieved? Resolution:The REST login call can be utilized to synch external users in a batch because scripts can be built around the REST call that will perform a login request. Such a script can potentially be built to read the list of external users (in LDAP for example) and then passed to the REST login call. More information about the REST login call can be found in chapter 3.3 of the TIBCO JasperReports Server REST API Reference v7.1.0.
  23. If you run the report in JasperReportsServer, do you get a blank PDF?
  24. Issue Description:When logging in to TIBCO JasperReports® Server that is integrated with Active Directory, roles are being created in the form of ROLE_FIRSTNAME_LASTNAME[/code]Resolution:When configuring LDAP/AD integration with jasper, part of the process is to tell JasperReports® Server how to find roles in your LDAP so that it can create and assign those roles to a user upon successful authentication. The bean to do so is ldapAuthenticationProvider, which tells JasperReports Server how to identify potential roles. In this case, the filter is written as <property name="groupSearchFilter" value="(sAMAccountName={1})"/> the above will actually instruct jasper that usernames are roles that should be created and assigned to users that login. Instead, the filter should be based on another attribute e.g. <property name="groupSearchFilter" value="(objectClass=group)"/>
  25. Issue Description: After applying a domain security file to a domain, the filterExpression in the file does not get used even when logging in as a user with the right attribute that would normally activate the expression. Resolution:The jasperserver.log confirms that the filterExpression is not used because when looking at the final query generated by adHoc, it omits the expression. The sample supermart domain contains an example security file and when ceomparing the structure of the xml, there was a key difference. In the sample supermart domain security file you see <resourceAccessGrantList id="sales_join_resource_access_grant" label="aLabel" resourceId="sales_join"> <resourceAccessGrants> <!-- This "join" will always be made when a query includes at least 1 item from this resource, even when the query does not include the related dataSet. --> <resourceAccessGrant id="sales_join_ROLE_SUPERMART_MANAGER_row_grant"> <principalExpression>authentication.getPrincipal().getRoles().any{ it.getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <filterExpression>store1.store_country in ('USA') and store1.store_state in ('CA')</filterExpression> </resourceAccessGrant>In the non-working file you see <resourceAccessGrantList id="sales_join_resource_access_grant" label="aLabel" resourceId="sales_join"> <resourceAccessGrants> <!-- This "join" will always be made when a query includes at least 1 item from this resource, even when the query does not include the related dataSet. --> <resourceAccessGrant id="sales_join_ROLE_SUPERMART_MANAGER_row_grant"> <principalExpression> authentication.getPrincipal().getRoles().any{ it.getRoleName() in ['ROLE_SUPERMART_MANAGER'] } </principalExpression> <filterExpression>store1.store_country in ('USA') and store1.store_state in ('CA') </filterExpression> </resourceAccessGrant>The presence of the newline characters will prevent proper reading and processing of the filterExpression. Once these are removed the filter should apply.
×
×
  • Create New...