Link to home
Start Free TrialLog in
Avatar of Adwait Chitaley
Adwait ChitaleyFlag for India

asked on

About the jasper report

I m getting an exception in that line  when i connect the xml as a datasource
   JRXmlDataSource xmlDataSource = new JRXmlDataSource("xmlFile","/userData/M55_USERS_NEW");
And this two exception are also come with that program
1)net.sf.jasperreports.engine.JRException: Failed to parse the xml document
2) C:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.18\bin\xmlFile (The system cannot find the file specified)

and how can i write the query also in java code to select data from xml file
please tell me some solution
package net.ensode.jasperbook.struts;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperRunManager;
 
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
 
public class GenerateReportAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
     Connection connection=null;
     Statement statement=null;
     ResultSet resultSet=null;
//     ServletContext application=servlet.getServletContext();
//     DataSource datasource = (DataSource) application.getAttribute(Globals.DATA_SOURCE_KEY);
//     ConnectionPool.dsource=datasource;
     ServletOutputStream servletOutputStream =response.getOutputStream();
     response.setContentType("application/pdf"); 
 
     try{
         
        String query="select * from M55_USERS_NEW";
//         connection=ConnectionPool.openConnection();
         System.out.println("After load Driver========================");
//         statement = connection.createStatement();
//         resultSet = statement.executeQuery(query);
 //        JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);
         System.out.println("Compiling report...");
         JasperCompileManager.compileReportToFile("C:/Documents and Settings/ashish/My Documents/NetBeansProjects/StrutsJasperXml/reports/RemoteReport.jrxml");
         System.out.println("Compilation Succesfully----------------------->");
         System.out.println("Filling report...");
         InputStream reportStream=new FileInputStream("C:/Documents and Settings/ashish/My Documents/NetBeansProjects/StrutsJasperCompleteApplication/reports/RemoteReport.jasper");
         System.out.println("ReportStream---------->>>>>>>>>>>>>>>>"+reportStream.toString());
         System.out.println("Done!");
 
        InputStream xmlFile=new FileInputStream("C:/Documents and Settings/ashish/My Documents/NetBeansProjects/StrutsJasperXml/reports/userxml.xml");
//         JRXmlDataSource xmlDataSource=new JRXmlDataSource(xmlFile,"/userData/M55_USERS_NEW");
       
         JRXmlDataSource xmlDataSource = new JRXmlDataSource("xmlFile","/userData/M55_USERS_NEW");
            System.out.println("After XMl  xmlDataSource read------->");
         JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, new HashMap(),xmlDataSource);
  
        }catch(Exception e){
            e.printStackTrace();
        }
     finally{
//        resultSet.close();
 //       statement.close();
//        ConnectionPool.closeConnection(connection);
        servletOutputStream.flush();
        servletOutputStream.close();
     }
     return mapping.getInputForward();
    }
}
 
and at the end i  am giving the xml code  also..
 
 
<userData>
<M55_USERS_NEW>
    <USER_ID >1</USER_ID >
    <USER_LOGIN >ashish</USER_LOGIN >
    <USER_FULL_NAME>ashish limje</USER_FULL_NAME >
    <USER_PASSWORD>ashish</USER_PASSWORD>
    <USER_ACTIVE_STATUS>1</USER_ACTIVE_STATUS>
</M55_USERS_NEW>
</userData>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Mick Barry
Mick Barry
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Adwait Chitaley

ASKER

i tried this but not work
not a proper solution