What is JasperServerJasperServer is an open source business intelligence suite, built by the developers of JasperReports. It providing common services like security and metadata management, and the capability to easily add additional functionality.It also provides a Web and Web services based environment for reporting, data analysis (OLAP), and data integration. What is JasperReportsJasperReports is a powerful open source Java reporting tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files. It is entirely written in Java and can be used in a variety of Java enabled applications, including J2EE or Web applications, to generate dynamic content. Its main purpose is to help creating page oriented, ready to print documents in a simple and flexible manner. System requirementsIn order to install JasperServer, you need to setup and configure the following application.
How to install JasperServer?JasperServer installation is very easy as no complicated process involved. In this guide, we will use the stand-alone WAR file distribution. Follow the step-by-step below to complete the installation. A. Download and Unpack JasperServer fileThe WAR file distribution comes in a ZIP file format. Please download the file from www.jasperforge.com. Once you have downloaded the WAR file distribution, you need to unpack it in order to access the contained files. Go to any working directory location to unpack the ZIP file. user@server:~# unzip jasperserver-3.0-bin.zip user@server:~# ls docs jasperserver.war js-installer-version.txt license.txt releaseNotes.txt samples scripts B. Setup the JasperServer database
C. Install/Deploy JasperServer into TomcatBecause the JasperServer is stand-alone JSP files, the installation process involves dropping the files into the webapps directory of the Tomcat server. If you decided to use Jasper Server as default page, then you should put the files into ROOT directory. user@server:~# cd $TOMCAT_ROOT/webapps user@server:~# mkdir jasperserver user@server:~# cd jasperserver/ user@server:~# jar xvf /home/user/jasperserver.war user@server:~# ls cal externalResource.htm images index.htm inputControl.htm jpivot META-INF scripts stylesheets wcf WEB-INF Allocate static memory for Tomcat (Java). The default memory is not enough to extract data which is more than 1000 records (estimation only). To do this, edit the $TOMCAT_ROOT/bin/setclasspath.sh and add the following lines at the end of file. JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx768m -XX:PermSize=32m -XX:MaxPermSize=128m -Xss2m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled "
D. Edit configuration filesThere are few configuration files that need to edit. The list of files and its contents as below:
Now you may start the Tomcat and check the Tomcat's log file to see that there are not serious errors on the startup. If JasperServer started up properly, you should be able to login. Login by going to the following URL: http://host-address:port/jasperserver. The default login information is written in the js-create-default-security.sql file. JasperServer Customization -> HOW-TOA. How to enable password encryption?File that need to be edited is $JASPER_ROOT/META-INF/WEB-INF/ApplicationContext-security.xml In the definition of the "daoAuthenticationProvider" bean, there is a commented-out reference to the passwordEncoder bean. Uncomment the reference to passwordEncoder and this causes the passwordEncoder logic to be used. After removing the commenting characters the line should look like the following: <property name="passwordEncoder"><ref local="passwordEncoder"/></property>Now under the “passwordEncoder” bean, the property "allowEncoding" should be changed from false to true so that it looks like the following: <property name="allowEncoding"><value>true</value></property> Once the changes described above are made, encryption is enabled for the JasperServer application upon the next restart.
B. How to change the login page?Edit the $JASPER_ROOT/WEB-INF/bundles/jasperserver_messages.properties and change your desired text as below. #Welcome Login Page LOGIN_WELCOME_OS=Welcome to JasperServer Reporting System! # the following 2 strings belong to the same sentence LOGIN_ONLINE_DEMO_PRE=JasperServer is an open source business intelligence suite .... LOGIN_ONLINE_DEMO=JasperReports is a powerful open source Java reporting tool ... Now, replace the $JASPER_ROOT/WEB-INF/jsp/login_welcome.jsp with the one i attached here. You may see the differents before replace. Once the file replaced, the login page will look like below.
C. How to change report export parameters?You need to edit $JASPER_ROOT/WEB-INF/applicationContext.xml and $JASPER_ROOT/WEB-INF/applicationContext-report-scheduling.xml. Look for "export parameters" section: <!-- export parameters --> <bean id="xlsExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.XlsExportParametersBean"> <property name="detectCellType" value="true"/> <property name="onePagePerSheet" value="false"/> <property name="removeEmptySpaceBetweenRows" value="false"/> <property name="removeEmptySpaceBetweenColumns" value="true"/> <property name="whitePageBackground" value="false"/> <property name="ignoreGraphics" value="false"/> <property name="collapseRowSpan" value="true"/> <property name="ignoreCellBorder" value="true"/> <property name="fontSizeFixEnabled" value="true"/> <property name="maximumRowsPerSheet" value="0"/> <property name="xlsFormatPatternsMap" ref="formatPatternsMap"/> </bean> <bean id="csvExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.CsvExportParametersBean"> <property name="fieldDelimiter" value="|"/> </bean> <bean id="pdfExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.PdfExportParametersBean"> <property name="localizedFontMap" ref="localePdfFontMap"/> </bean> <util:map id="formatPatternsMap"> <!-- entry key="¤ #,##0.00" value="$ #,##0.00"/--> </util:map> <!-- end export parameters --> D. How to restrict report scheduling function?You need to edit $JASPER_ROOT/WEB-INF/jsp/repository/repositoryExplorer.jsp and add the "authz:authorize ifAllGranted" to set the permission based on role. In example below, i have granted scheduling / run background to role "Administrator" only. <authz:authorize ifAllGranted="ROLE_ADMINISTRATOR"> <td style="cursor: pointer;" width='50' height='50' onClick='' id='schedule_td' align="center"> <a href='#' class='normalpx' id='schedule_td_a'><img src="images/schedule_enabled.gif" border='0' title='<spring:message code="RM_BUTTON_SCHEDULE_REPORT" javaScriptEscape="true"/>' id='schedule' /></a> </td> <td style="cursor: pointer;" width='50' height='50' onClick='' id='send_output_td' align="center"> <a href='#' class='normalpx' id='send_output_td_a'><img src="images/send_output_enabled.gif" border='0' title='<spring:message code="RM_BUTTON_RUN_IN_BACKGROUND" javaScriptEscape="true"/>' id='send_output' /></a> </td> </authz:authorize> ReferencesFor more information on the installation guide and troubleshooting, please visit http://wwww.jasperforge.org
|
|||||||||


Very nice, I really liked it.
Very nice, I really liked it. Do you know of somewhere I can check out more about it?
What kind of information
Hi, What kind of information you looking? The other source would the JasperSoft website itself.
Fetch E-Mail address to report-scheduling->output->To text box
Hi,
How to fetch the email address stored in the user master to the report-scheduling->output->To (last page) page automatically? Also how can I put the user name to the Subject text box automatically?
Thanks in advance... please help me
Sumesh
email address to the report-scheduling output
Hi,
How can I display the email address saved with the user master to the report-scheduling last page (output) automatically when the user comes to that page? Also how can I put the user name to the Subject box in the same page? Please reply as soon as possible...
Thank you in advance
Sumesh
Dont understand
Hi,
Sorry, i dont really get your question. Could you elaborate a bit in details on wht you trying to achieve?
Password Encryption in JasperServer 3.0
Hi,
Thanks so much for this information on Password encryption on JS 3.0. We want to upgrade to 3.5 just for password encryption, but this is great for now! (when I get it working)
I would like to know what the format should be after encryption and is it Base 64 encoding or some other kind of encryption?
Should it still follow the direct report URL format -
http://192.168.33.134:8080/jasperserver/flow.html?_flowId=viewReportFlow... Honda&Month=January&Year=2009&decorate=no&output=pdf&j_acegi_security_check?&j_username=encrypt&j_password=encrypt?
I tried it with this format, and i got a message - "Invalid credentials supplied.
Could not login to JasperServer."
So, I reverted the changes I made in the applicationContext-security.xml to enable password encryption. I am still not able to log in.
Can you please help me here?
Thanks,
Sri
Ok. I admit. I dont think I
Ok. I admit. I dont think I understood everything the first time I read. I didnt follow the instructions completely in encrypting the password in the database.
It works fine now after i reverted the changes I made to appContext-security.xml.
Will try again now!
Thanks,
Sri
Encryption enabled in JS3.5
Hi,
The encryption in JS 3.5 is enabled by default. So, there should not be any changes to the JS code except you need to update the password in database. Anyhow, please use http://www.raj2u.net/jasperserver-35-with-postgresql-83-on-linux.html for JS 3.5 related matter.
Unlock JasperServer-pro
I have downloaded and installed jasperserver-pro evaluation version. now the trial is expired. is there a way to continue using the same installation by modifying any configuration files
Need valid Key
Im afraid you need a valid license key to continue use the JS Pro version
Adding new fields to login page
Hi,
While I have been able to customize the JasperServer to use existing iBatis/Struts infrastructure and integrate authentication using existing app, there is one thorn. How can I change the login page to accept another field? Say I want user to enter Domain in addition to username and password. And use the three to authenticate and eventually show reports. I have been able to write my custom Dao that validates jasper user from my DB, but how do I get new attribute - domain to reach my Dao, so that it can be used to authenticate the user?
Thx
Let me take a look and get
Let me take a look and get back to you... BTW, if you are using latest JS-3.5, please post your comment in http://www.raj2u.net/jasperserver-35-with-postgresql-83-on-linux.html
Configure js.quartz.properties to use SSL / TLS
Thank you for the pointing me in the direction of js.quartz.properties vs. js.mail.properties. I believe everything is configured properly, however, I need to use Google Apps as the smtp server, and Google requires TLS. Here is a copy of the error:
Job: Missing Rates Batch (ID: 1)
Report unit: /Folder/ReportName
Quartz Job: ReportJobs.job_1
Quartz Trigger: ReportJobs.trigger_1_1
Exceptions:
An error occurred while sending job error notification.
org.springframework.mail.MailSendException; nested exception details (1) are:
Failed message 1:
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. 26sm2415915qwa.46
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:391)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:335)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:331)
at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.sendMailNotification(ReportExecutionJob.java:916)
at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.executeAndSendReport(ReportExecutionJob.java:392)
at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.execute(ReportExecutionJob.java:188)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
I'm trying to avoid modifying the quartz.1.5.1.jar file and hoping I could add a property in the quartz.properties to STARTTLS. You seem to have a strong handle on how Jasper operates and was hoping you could set me on the right path. Thanks in advance for any guidance you are willing to share.
Refer to JasperServer How-To
Hi,
Please refer to http://www.raj2u.net/jasperserver-quick-how-to.html -> section H: What if SMTP server required authentication or TLS/SSL connection?
For the Gmail SMTP port, please try port 465 or 587. Later, please share the result.
Google Mail Server
I never try use Google's mail server, but i remember there were some topics discussed about this in forum. Let me check it first
JasperServer with weblogic
Hi All,
I am new to jasperserver and ireport. How to use jasperserver with weblogic 10.3. How to start and stop jasper server?. Is tomact is default for jasperserver? After login asjasperadmin i didnot find any options to restart. Please help me out. Thanks in advance.
Sridhar.
Not tried with weblogic before
Hi,
JasperServer is actually a java container which need to be deploy to Java Servlet (Tomcat, Jboss, etc). I have not used Weblogic before so i cant guide on how to deploy into Weblogic. You cant restart JasperServer from the UI, actually you need to restart the Java Servlet. You might confuse with the name of "JasperServer" - its actually a java web application.
Tomcat start up error please help
8:43,663 WARN SettingsFactory,main:109 - Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:804)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:744)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
at org.springframework.beans.factory.support.AbstractAutowireCapableBe
JDBC URL Setting
Hi,
Do you put the JDBC driver in Tomcat? And set the proper database connection setting?
postgresql 8.3 and jasper 3.1
Sorry I am slightly lost what scripts should i run for postgresql 8.3 database?
From discussion it does not look like the ones provide as attachments will work for 8.3.
Thanks.
Hi, Thanks for your comment,
Hi,
Thanks for your comment, well this blog is written for PostgreSQL 8.1 and JS 3.0 . Soon, i'll write one more blog for JS 3.1 with PostgreSQL 8.3.
JasperServer 3.1 PostgreSQL Schema
Dear Anandharaj,
For JasperServer 3.1, there using PostgreSQL, and using Hibernate dialect: "com.jaspersoft.hibernate.dialect.PostgresqlNoBlobDialect", your schema has to be changed slightly.
In fact i have only done a minimal test, but at least i am not getting errors when i upload an input control or file. Basically i changed the OID type colums with Bytea.
If you think it might be helpful for you, just write to me and i will send it corrected.
Thanks for your great help in getting PostgreSQL up with JS.
RE:JasperServer 3.1 PostgreSQL Schema
can you possibly post that 3.1 schema? I have been attempting to get things up and running using postgreSQL and only having minimal luck - I can get the server to run, etc but I can't delete or modify reports for instance, or run in the background
Cheers,
Ben
Thanks
Hi Juan Gimenez,
Thank you very much for the updates, yes i notice some changes in JS 3.1, but not update my blog yet. Will appreciate if you can provide those changes (in comparison with JS 3.0), than i shall update my blog here. Thanks in advance.
Unknown SMTP host: mail.localhost.com
I had similar problem until I updated js.quarts.properties the same was as was recommended here for js.mail.properties. Looks like js.quarts.properties is used for notification.
What you update?
Hi,
Then what you have updated in js.quarts.properties file?
Map Long to blob Exception
I've set up a new Jasperserver 3.1 following your tutorial.
I have a Windows Server with a PostgreSQL 8.3 DB.
Everything worked smooth(login, creating data sources,...) until i tried to add my first Report to the Server.
I created a Report with 2 Input Controls and saved it.
When i try to view the report on the repository it doesn't appear, the idle icon next to the folder doesn't disappear.
Here's the exception from the log:
org.hibernate.HibernateException: I don't know how to map the type java.lang.Long to a blob
I can also post the whole Stacktrace if this helps (just don't wanted to flood the comments area)
Carsten
Send the full log
Hi,
Thanks for your comments, i'll try my level best to solve it. The problem might be related to PostgreSQL as my tutorial is based on PostgreSQL 8.1. Please send the full log to webmaster@raj2u.net. Besides that, please make sure you are using correct JDBC driver according to JDK version (http://jdbc.postgresql.org/download.html)
I just got stuck in the same
I just got stuck in the same way... "I don't know how to map the type java.lang.Long to a blob" after importing my first report, using postgresql 8.3.5...
Has anyone found a solution yet?
Fixed!
hey, I've found the solution:
- I've re-created the database using the scripts available at http://jasperforge.org/scm/viewvc.php/trunk/buildomatic/install_resource...
- I've changed the line:
metadata.hibernate.dialect=com.jaspersoft.hibernate.dialect.PostgresqlNoBlobDialect
in WEB-INF/hibernate.properties
- I've removed defaultAutoCommit="false" from META-INF/context.xml (as suggested on JasperForge forums)
Thanks
Hi,
Thanks for the update...at least it will help others on this issue, since im not using PostgreSQL 8.3, im not manage to discover this...
Cant find *.sql
Hi...
I've downloaded the js 3.1. Where can I find js-create-trigger.sql, js-create-default-security.sql and js-create-schema.sql?
I don't find them in any part of my installation.
regards
upss sorry
Ok. I didn't see the final attachments.
Thanks.
Great tutorial....
regards
jar xvf jasperserver.war
Hi,
I am using Centos 4.4. I am trying to install jasperserver on my pc. I followed the above procedure, but stucked on section "C" ( Install/Deploy JasperServer into Tomcat ).
When i run # jar xvf /path/jasperserver.war /path/jasperserver it doesn't extract any fine in jasperserver directory.
Waiting for Reply.
thanks
sandeep
Extract without specifying the dest folder
Hi,
Seems like we need to extract without specifying the destination folder. Therefore, we need to "cd" into that folder before extract. I have updated that section, please refer back.
Thanks for reply. I have
Thanks for reply.
I have already did that.
Modifications in GUI
I have installed Jasper Sever 3.0 . I woul like to make some changes in the User Interface like hiding the scheduler icons. How to g about it ?
Refer How-To section "D"
Hi,
I have added that in How-To, please refer section "D" - How to restrict report scheduling function?
js.mail.properties
Hi,
thanks for this post.
I have got an issue with the mail . The server is not able to send mail
I have got a JasperServer-pro 3.0.2. running on linux plaform (redhat enterprise 5.2).
The file js.mail.properties was missing, I have created a new one and put all informations (mail server, protocol, port, user...).
I have stop and restard the jasperserver.
I have got always error messages : Caused by: javax.mail.MessagingException: Unknown SMTP host: mail.localhost.com;
But it is strange, because I have put my smtp server and not mail.locahost.com
I have installed jasperserver release 3.0.1 on my computer (windows XP). I have put the same js.mail.proerties locally, and it works !!!!!!
Is there any issue with linux ?, with 3.0.2 ?
Why jasperserver still using mail.localhost.com ?
Thanks for any advice
Seems like you are using JS
Seems like you are using JS Pro version, and you were saying that the js.mail.properties file is mission...probably Pro version is using different file / different place to change it? Please send the content of js.mail file that you created...with its location path.
No luck...
No luck with these instructions. Thou I'm using MySql that is working fine with all the other Tomcat applications. Back to Crystal Reports it seems to me. Open source projects are ok if you aren't doing anything critical. For real life projects, just forget it.
Hmm, actually JS is same
Hmm, actually JS is same level as Crystal Report...its just a matter how you do the setup. If you wish to try JS without hassle, try the Pro version which you will have official support from JasperSoft.
slightly connected question
Hi Raj,
Thanks for the post, but I have a separate question about using JasperServer Input Controls with a jrxml file.
I know it's slightly off the topic here, but I posted this question on the forum, and since know your stuff, was hoping you could probably answer this in a couple of seconds.
http://jasperforge.org/plugins/espforum/view.php?group_id=112&forumid=10...
any help greatly appreciated
Sorry, im a bit busy that why
Sorry, im a bit busy that why couldn't reply in the forum. Will check and reply there.
DDL files
Thanks for sharing these steps but where did you source js-create-schema.ddl, quartz-tables-postgres.sql, js-create-default-security.sql and js-create-trigger.sql from? I can't find these in the jasperserver-3.0-bin.zip distribution.
Calvin.
Schema Attached
The file already attached. That schema is based on PostgreSQL 8.1, if you have problem with latest version, please let me know.
Post new comment