Jasper Report problem

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.

Subject: Jasper Report problem

What run-level do this agent use? If it is set to “1”, try to bump it up one or two steps. Also, are the Jasper jars in jvm/ext/lib (good) or included inside the agent (not so good)?

Kind regards

Daniel

Subject: RE: Jasper Report problem

I have triggered agent with all run levels (“Allow restricted operation” & “Allow restricted operation with full adminstrative rights”). And i have copied all necessary jar files to jvm/ext/lib folder.

But its not working.

Subject: Jasper Report problem

IANAEB ( I Am Not An Expert But) :

Traceback shows that this seems to relate to jasperreports engine code, not Notes. Does the same code do the same thing if you yank out the Notes stuff, and make jaspertest your “Main”, and run it as a standalone (instead of an Agent) ? Or does it get past that point?

Also, check the JVM version that Notes server is supplying, versus what is required by jasper. Try the above test with different JVMs.

Subject: RE: Jasper Report problem

Before for going for java agent. For testing purpose, I have created a java file , i m running it from the command prompt and i m successfully creating pdf reports. With the same logic, i have created a java agent but it doesnot work.

Subject: FYI:Jasper Report problem (update)

I have created a java file which is generating pdf reports successfully. When i run java file from command prompt. We have to start the Apache tomcat server. This means that the Jasper report engine is using tomcat to generate reports.

According to me, same thing we will require to run java agent also. Now the problem is how to connect Domino and tomcat server. 

From internet, i recently found that there is some "domino-tomcat connector"  which needs to be configured on the server. I dont know how to configure it . If you have any information regarding (domino-tomcat conector) then please tell me. 

Thanks for your interest.

Ketan Borde,

Synygy India Pvt Ltd.

Subject: RE: FYI:Jasper Report problem (update)

Have you had any success with this?

Subject: RE: FYI:Jasper Report problem (update)

I had a similar problem with a different external jar. Needed to edit the security permissions in the java.policy file to allow it to run properly

http://xpages.oval.uk.com