I am trying to use jasper reports in for generating reports in my web application. i have written a java Agent in which i m accessing classes which are required for jasper reports.
The Java agent code is as follows:
import lotus.domino.*;
import java.sql.*;
import java.util.*;
import java.io.*;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
// import net.sf.jasperreports.view.JasperDesignViewer;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperPrint;
public class JasperTest extends AgentBase
{
public void NotesMain()
{
Connection logCon;
Statement stmt;
PrintWriter pWriter= getAgentOutput();
String query;
String strpath;
ResultSet rs;
JasperReport jasperReport;
JasperPrint jasperPrint;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("1");
logCon = DriverManager.getConnection("jdbc:odbc:DSJasper");
stmt = logCon.createStatement();
query= "Select * from employee";
rs = stmt.executeQuery(query);
strpath=GetHTMLDirPath();
jasperReport= JasperCompileManager.compileReport(strpath+ "EmpReport.jrxml");
pWriter.println("1");
jasperPrint= JasperFillManager.fillReport(jasperReport, new HashMap(), new JRResultSetDataSource(rs));
JasperExportManager.exportReportToPdfFile(jasperPrint, strpath+"simple_report.pdf");
}
catch(Exception e)
{
e.printStackTrace();
}
public String GetHTMLDirPath()
{
String strReturn= "";
PrintWriter pw= getAgentOutput();
try
{
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database CurrDb = agentContext.getCurrentDatabase();
Database NABdb = session.getDatabase(CurrDb.getServer(),"names.nsf");
String serverName = NABdb.getServer();
Name NmServer = session.createName(serverName);
serverName = NmServer.getCanonical();
View NABView = NABdb.getView("($Servers)");
Document ServerDoc= NABView.getDocumentByKey(serverName,true);
String dataDir= session.getEnvironmentString("Directory",true);
String DirPath= ServerDoc.getItemValueString("HTTP_HTMLDir");
DirPath= DirPath.toLowerCase();
if(DirPath.equals("domino\\html"))
{
strReturn=dataDir + "\\" + DirPath + "\\";
}
else
{
strReturn = DirPath;
}
}
catch(Exception e)
{
e.printStackTrace();
}
return strReturn;
}
}
When i am running it . It is giving me some errors like this::
Jul 10, 2007 8:04:15 PM org.apache.commons.beanutils.MethodUtils getMatchingAccessibleMethod
WARNING: Cannot setAccessible on method. Therefore cannot use jvm access bug workaround.
java.security.AccessControlException: access denied (java.lang.reflect.ReflectPermission suppressAccessChecks)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:292)
at java.security.AccessController.checkPermission(AccessController.java:476)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:538)
at COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermission(AppletSecurity.java:1397)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1479)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1412)
at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:137)
at org.apache.commons.beanutils.MethodUtils.getMatchingAccessibleMethod(MethodUtils.java:578)
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:243)
at org.apache.commons.digester.CallMethodRule.end(CallMethodRule.java:625)
at org.apache.commons.digester.Rule.end(Rule.java:230)
at org.apache.commons.digester.Digester.endElement(Digester.java:1130)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1647)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(Unknown Source)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(Unknown Source)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(Unknown Source)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(Unknown Source)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(Unknown Source)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(Unknown Source)
at JasperTest.NotesMain(JasperTest.java:39)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
Actually, we need to access some tomcat related jar files but i dont know how to access it.