Friday, April 8, 2011

How to set CATALINA_HOME/PATH variables in Windows

1. Download  apache-tomcat-6.x.x.zip and unzip to C:\Apache\Tomcat. This should result in C:\Apache\Tomcat\apache-tomcat-6.x.x
2. Right click on the My Computer and select properties
3. Click Advanced Tab
4. Click Environment Variables
5. Under System Variables, click New
6. In the Variable name field, enter CATALINA_HOME
7. In the Variable value field, enter the path to where the Tomcat is installed


8. Under System Variables,  look for Path and click Edit
9. In the Variable value, add %CATALINA_HOME%\bin;


10. Click OK
11. Click Apply

How to set JAVA_HOME / PATH variables in Windows

1. Right click on the My Computer and select properties
2. Click Advanced Tab
3. Click Environment Variables
4. Under System Variables, click New
5. In the Variable name field, enter JAVA_HOME
6. In the Variable value field, enter the path to where the JDK is installed


7. Under System Variables,  look for Path and click Edit
8. In the Variable value, add %JAVA_HOME%\bin;


9. Click OK
10. Click Apply

Jasper Report with embedded SQL using Struts2 + Spring Framework

We have decided that in order to make our Jasper Reports portable we need to start embedding SQL queries in our JasperReports. The plan is for all future Jasper Reports with embedded SQL queries be deployed to a dedicated JasperServer. This way the applications do not hang when someone runs a huge report; this will prevent hair being pulled out of frustration.

Our environment uses Struts 2-Spring-Hibernate + Jasper for reporting. The challenge is how to pass the connection to the JasperReports.


So here is the solution I came up with:


1. Make sure that the dataSource is declared in Spring.



2. Add a DataSource variable to the Action. In this example I autowired the datasource; it can also be mapped declaratively. 


3. Add a Connection variable in the Action and a getter. The connection will be set when the method that will return the Report is called.


4. In the struts.xml, provide the connection parameter name with the name of the connection variable in the action class.