Java 如何将mongodb的连接对象提供给JasperFillManager.fillReport()-Spring mongodb Jasper Integration

Java 如何将mongodb的连接对象提供给JasperFillManager.fillReport()-Spring mongodb Jasper Integration,java,spring,mongodb,jasper-reports,Java,Spring,Mongodb,Jasper Reports,我正在研究Spring MongoDB Jasper集成示例。我已经有了Spring Mysql Jasper示例,它运行良好。我希望为mongodb转换相同的程序 源代码位于: @注意:我遵循了,但我没有看到要下载的jar文件。它不存在于maven回购协议中 LoadJasperReport.java @Controller public class LoadJasperReport { private static final Logger LOGGER = LoggerFactor

我正在研究Spring MongoDB Jasper集成示例。我已经有了Spring Mysql Jasper示例,它运行良好。我希望为mongodb转换相同的程序

源代码位于:

@注意:我遵循了,但我没有看到要下载的jar文件。它不存在于maven回购协议中

LoadJasperReport.java

@Controller
public class LoadJasperReport {
    private static final Logger LOGGER = LoggerFactory.getLogger(LoadJasperReport.class);

    @ModelAttribute("jasperRptFormats")
    public ArrayList<String> getJasperRptFormats() {
        ArrayList<String> jasperRptFormats = new ArrayList<String>();
        jasperRptFormats.add("Html");
        jasperRptFormats.add("PDF");

        return jasperRptFormats;
    }

    @RequestMapping(value = "/loadJasper", method = RequestMethod.GET)
    public String loadSurveyPg(@ModelAttribute("jasperInputForm") JasperInputForm jasperInputForm, Model model) {
        model.addAttribute("JasperInputForm", jasperInputForm);
        return "loadJasper";
    }

    @RequestMapping(value = "/generateReport", method = RequestMethod.POST)
    public String generateReport(@Valid @ModelAttribute("jasperInputForm") JasperInputForm jasperInputForm,
            BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response)
            throws ParseException {
        LOGGER.debug("~~~ Generate Report ~~~");

        if (result.hasErrors()) {
            LOGGER.error("validation error occured in jasper input form");
            return "loadJasper";

        }

        String reportFileName = "JREmp1";

        Connection conn = null;
        try {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                LOGGER.error("Please include Classpath Where your MySQL Driver is located");
                e.printStackTrace();
            }

            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
            if (conn != null)
                LOGGER.debug("Database Connected");
            else
                LOGGER.debug(" connection Failed ");

            String rptFormat = jasperInputForm.getRptFmt();
            String noy = jasperInputForm.getNoofYears();

            LOGGER.debug("rpt format " + rptFormat + ", no of years " + noy);

            HashMap<String, Object> hmParams = new HashMap<String, Object>();
            hmParams.put("noy", new Integer(noy));
            hmParams.put("Title", "Employees working more than " + noy + " Years");

            JasperReport jasperReport = getCompiledFile(reportFileName, request);

            if (rptFormat.equalsIgnoreCase("html")) {
                JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hmParams, conn);
                // For HTML report
                generateReportHtml(jasperPrint, request, response);
            } else if (rptFormat.equalsIgnoreCase("pdf")) {
                // For PDF report
                generateReportPDF(response, hmParams, jasperReport, conn);
            }
        } catch (Exception sqlExp) {
            LOGGER.error("Exception::" + sqlExp.toString());
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
            } catch (SQLException expSQL) {
                LOGGER.error("SQLExp::CLOSING::" + expSQL.toString());
            }
        }
        return null;
    }

    private JasperReport getCompiledFile(String fileName, HttpServletRequest request) throws JRException {
        LOGGER.debug("path " + request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));

        File reportFile = new File(
                request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));

        // If compiled file is not found, then compile XML template
        if (!reportFile.exists()) {
            JasperCompileManager.compileReportToFile(
                    request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jrxml"),
                    request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));
        }

        JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromFile(reportFile.getPath());
        return jasperReport;
    }

    private void generateReportHtml(JasperPrint jasperPrint, HttpServletRequest req, HttpServletResponse resp)
            throws IOException, JRException {
        LOGGER.debug("~~~ Generate HTML Report ~~~");

        HtmlExporter exporter = new HtmlExporter();

        List<JasperPrint> jasperPrintList = new ArrayList<JasperPrint>();
        jasperPrintList.add(jasperPrint);

        exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrintList));
        exporter.setExporterOutput(new SimpleHtmlExporterOutput(resp.getWriter()));

        SimpleHtmlReportConfiguration configuration = new SimpleHtmlReportConfiguration();
        exporter.setConfiguration(configuration);
        exporter.exportReport();
    }

    private void generateReportPDF(HttpServletResponse resp, Map<String, Object> parameters, JasperReport jasperReport,
            Connection conn) throws JRException, NamingException, SQLException, IOException {
        LOGGER.debug("~~~ Generate PDF Report ~~~");

        byte[] bytes = null;
        bytes = JasperRunManager.runReportToPdf(jasperReport, parameters, conn);

        resp.reset();
        resp.resetBuffer();
        resp.setContentType("application/pdf");
        resp.setContentLength(bytes.length);
        ServletOutputStream ouputStream = resp.getOutputStream();
        ouputStream.write(bytes, 0, bytes.length);
        ouputStream.flush();
        ouputStream.close();
    }
}
我更改了如下代码,但它不起作用。请引导。

package net.javaonline.spring.jasper.controller;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.naming.NamingException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.jaspersoft.mongodb.MongoDbDataSource;
import com.jaspersoft.mongodb.connection.MongoDbConnection;

import net.javaonline.spring.jasper.form.JasperInputForm;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.export.HtmlExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.export.SimpleExporterInput;
import net.sf.jasperreports.export.SimpleHtmlExporterOutput;
import net.sf.jasperreports.export.SimpleHtmlReportConfiguration;

@Controller
public class LoadJasperReport {
    private static final Logger LOGGER = LoggerFactory.getLogger(LoadJasperReport.class); 

    @ModelAttribute("jasperRptFormats")
    public ArrayList<String> getJasperRptFormats(){
        ArrayList<String> jasperRptFormats = new ArrayList<String>();
        jasperRptFormats.add("Html");
        jasperRptFormats.add("PDF");

        return jasperRptFormats;
    }   


    @RequestMapping(value = "/loadJasper", method = RequestMethod.GET)
    public String loadSurveyPg(
            @ModelAttribute("jasperInputForm") JasperInputForm jasperInputForm,
            Model model) {
        model.addAttribute("JasperInputForm", jasperInputForm);
        return "loadJasper";
    }


    @RequestMapping(value = "/generateReport", method = RequestMethod.POST)
    public String generateReport(
            @Valid @ModelAttribute("jasperInputForm") JasperInputForm jasperInputForm,
            BindingResult result,Model model, 
            HttpServletRequest request, HttpServletResponse response) throws ParseException {
        LOGGER.debug("~~~ Generate Report ~~~");

        if (result.hasErrors()) {
            LOGGER.error("validation error occured in jasper input form");
            return "loadJasper";

        }

        String reportFileName = "JREmp1";
        MongoDbConnection conn = null;

        try {
            try {
                conn = new MongoDbConnection("mongodb://localhost:27017/mydb", null, null);
            } catch (JRException e) {
                System.out.println("JREException : "+e.getMessage());
            }

            Map<String, Object> parameters = new HashMap<String, Object>();
            parameters.put(MongoDbDataSource.QUERY_LANGUAGE, conn);

            String rptFormat = jasperInputForm.getRptFmt();
            String noy = jasperInputForm.getNoofYears();

            LOGGER.debug("rpt format " + rptFormat+", no of years " + noy);


            HashMap<String,Object> hmParams=new HashMap<String,Object>();
            hmParams.put("noy", new Integer(noy));
            hmParams.put("Title", "Employees working more than "+ noy + " Years");


            JasperReport jasperReport = getCompiledFile(reportFileName, request);

            if (rptFormat.equalsIgnoreCase("html") ) {
                JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hmParams, conn);
                // For HTML report
                generateReportHtml(jasperPrint, request, response); 
            }
            else if(rptFormat.equalsIgnoreCase("pdf")){
                // For PDF report
                generateReportPDF(response, hmParams, jasperReport, conn); 
            }
        } catch (JRException | IOException | NamingException | SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            if (conn != null) {
                conn.close();
                conn = null;
            }
        }
        return null;
    }

    private JasperReport getCompiledFile(String fileName, HttpServletRequest request) throws JRException {
        LOGGER.debug("path " + request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));

        File reportFile = new File( request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));

        // If compiled file is not found, then compile XML template
        if (!reportFile.exists()) {
            JasperCompileManager.compileReportToFile(request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jrxml"),request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));
        }

        JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromFile(reportFile.getPath());
        return jasperReport;
    } 


    private void generateReportHtml( JasperPrint jasperPrint, HttpServletRequest req, HttpServletResponse resp) 
            throws IOException, JRException {
        LOGGER.debug("~~~ Generate HTML Report ~~~");

        HtmlExporter exporter=new HtmlExporter();

        List<JasperPrint> jasperPrintList = new ArrayList<JasperPrint>();
        jasperPrintList.add(jasperPrint);

        exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrintList));
        exporter.setExporterOutput( new SimpleHtmlExporterOutput(resp.getWriter()));

        SimpleHtmlReportConfiguration configuration =new SimpleHtmlReportConfiguration();
        exporter.setConfiguration(configuration);
        exporter.exportReport();
    }

    private void generateReportPDF (HttpServletResponse resp, Map<String, Object> parameters, 
            JasperReport jasperReport, Connection conn)throws JRException, NamingException, SQLException, IOException {
        LOGGER.debug("~~~ Generate PDF Report ~~~");

        byte[] bytes = null;
        bytes = JasperRunManager.runReportToPdf(jasperReport, parameters, conn);

        resp.reset();
        resp.resetBuffer();
        resp.setContentType("application/pdf");
        resp.setContentLength(bytes.length);
        ServletOutputStream ouputStream = resp.getOutputStream();
        ouputStream.write(bytes, 0, bytes.length);
        ouputStream.flush();
        ouputStream.close();
    } 
}
package net.javaonline.spring.jasper.controller;
导入java.io.File;
导入java.io.IOException;
导入java.sql.Connection;
导入java.sql.SQLException;
导入java.text.ParseException;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入javax.naming.NamingException;
导入javax.servlet.ServletOutputStream;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入javax.validation.Valid;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
导入org.springframework.stereotype.Controller;
导入org.springframework.ui.Model;
导入org.springframework.validation.BindingResult;
导入org.springframework.web.bind.annotation.ModelAttribute;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestMethod;
导入com.jaspersoft.mongodb.MongoDbDataSource;
导入com.jaspersoft.mongodb.connection.MongoDbConnection;
导入net.javaonline.spring.jasper.form.JasperInputForm;
导入net.sf.jasperreports.engine.JRException;
导入net.sf.jasperreports.engine.JasperCompileManager;
导入net.sf.jasperreports.engine.JasperFillManager;
导入net.sf.jasperreports.engine.JasperPrint;
导入net.sf.jasperreports.engine.JasperReport;
导入net.sf.jasperreports.engine.JasperRunManager;
导入net.sf.jasperreports.engine.export.HtmlExporter;
导入net.sf.jasperreports.engine.util.JRLoader;
导入net.sf.jasperreports.export.SimpleExporterInput;
导入net.sf.jasperreports.export.SimpleHtmlExporterOutput;
导入net.sf.jasperreports.export.SimpleHtmlReportConfiguration;
@控制器
公共类LoadJasperReport{
私有静态最终记录器Logger=LoggerFactory.getLogger(LoadJasperReport.class);
@ModelAttribute(“JasperptFormats”)
公共阵列列表getjasperptformats(){
ArrayList JasperptFormats=新的ArrayList();
添加(“Html”);
jasperptformats.add(“PDF”);
返回格式;
}   
@RequestMapping(value=“/loadJasper”,method=RequestMethod.GET)
公共字符串loadSurveyPg(
@ModelAttribute(“jasperInputForm”)jasperInputForm jasperInputForm,
(模型){
addAttribute(“JasperInputForm”,JasperInputForm);
返回“loadJasper”;
}
@RequestMapping(value=“/generateReport”,method=RequestMethod.POST)
公共字符串生成器报告(
@有效@ModelAttribute(“jasperInputForm”)jasperInputForm jasperInputForm,
BindingResult,模型,
HttpServletRequest请求、HttpServletResponse响应)引发异常{
LOGGER.debug(“~~~生成报告~~”);
if(result.hasErrors()){
LOGGER.error(“jasper输入表单中发生验证错误”);
返回“loadJasper”;
}
String reportFileName=“JREmp1”;
MongoDbConnection conn=null;
试一试{
试一试{
conn=新的MongoDB连接(“mongodb://localhost:27017/mydb“,空,空);
}捕获(JRE异常){
System.out.println(“JREException:+e.getMessage());
}
映射参数=新的HashMap();
parameters.put(MongoDbDataSource.QUERY_语言,conn);
字符串rptFormat=jasperInputForm.getRptFmt();
字符串noy=jasperInputForm.getNoofYears();
LOGGER.debug(“rpt格式”+rptFormat+”,年份数“+noy);
HashMap hmParams=新的HashMap();
hmParams.put(“noy”,新整数(noy));
hmParams.put(“职称”、“工作年限超过“+noy+”年的员工”);
JasperReport JasperReport=getCompiledFile(报告文件名,请求);
if(rptFormat.equalsIgnoreCase(“html”)){
JasperPrint JasperPrint=JasperFillManager.fillReport(康涅狄格州hmParams的jasperReport);
//用于HTML报告
generateReportHtml(jasperPrint、请求、响应);
}
else if(rptFormat.equalsIgnoreCase(“pdf”)){
//PDF格式的报告
generateReportPDF(响应,hmParams,康涅狄格州jasperReport);
}
}catch(JRException | IOException | NamingException | SQLException e){
System.out.println(e.getMessage());
}最后{
如果(conn!=null){
康涅狄格州关闭();
conn=null;
}
}
返回null;
}
私有JasperReport getCompiledFile(字符串文件名,HttpServletRequest请求)引发异常{
debug(“path”+request.getSession().getServletContext().getRealPath(“/jasper/”+fileName+”.jasper”));
File reportFile=新文件(request.getSession().getServletContext().getRealPath(“/jasper/”+fileName+”.jasper”);
//若未找到已编译的文件,则编译XML模板
如果(!reportFile.exists()){
jaspecompilemanager.compileReportToFile(request.getSession().getServletContext().getRealPath(“/jasper/”+fileName+”.jrxml”)、request.getSession().getServletContext().getRealPath(“/jasper/”+fileName+”.jasper”);
}
JasperReport JasperReport=(JasperReport)JRLoader.loadObjectFromFile(reportFile.getPath());
返回jasperReport;
} 
私有void生成器报表HTML(JasperPrint j
package net.javaonline.spring.jasper.controller;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.naming.NamingException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.jaspersoft.mongodb.MongoDbDataSource;
import com.jaspersoft.mongodb.connection.MongoDbConnection;

import net.javaonline.spring.jasper.form.JasperInputForm;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.export.HtmlExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.export.SimpleExporterInput;
import net.sf.jasperreports.export.SimpleHtmlExporterOutput;
import net.sf.jasperreports.export.SimpleHtmlReportConfiguration;

@Controller
public class LoadJasperReport {
    private static final Logger LOGGER = LoggerFactory.getLogger(LoadJasperReport.class); 

    @ModelAttribute("jasperRptFormats")
    public ArrayList<String> getJasperRptFormats(){
        ArrayList<String> jasperRptFormats = new ArrayList<String>();
        jasperRptFormats.add("Html");
        jasperRptFormats.add("PDF");

        return jasperRptFormats;
    }   


    @RequestMapping(value = "/loadJasper", method = RequestMethod.GET)
    public String loadSurveyPg(
            @ModelAttribute("jasperInputForm") JasperInputForm jasperInputForm,
            Model model) {
        model.addAttribute("JasperInputForm", jasperInputForm);
        return "loadJasper";
    }


    @RequestMapping(value = "/generateReport", method = RequestMethod.POST)
    public String generateReport(
            @Valid @ModelAttribute("jasperInputForm") JasperInputForm jasperInputForm,
            BindingResult result,Model model, 
            HttpServletRequest request, HttpServletResponse response) throws ParseException {
        LOGGER.debug("~~~ Generate Report ~~~");

        if (result.hasErrors()) {
            LOGGER.error("validation error occured in jasper input form");
            return "loadJasper";

        }

        String reportFileName = "JREmp1";
        MongoDbConnection conn = null;

        try {
            try {
                conn = new MongoDbConnection("mongodb://localhost:27017/mydb", null, null);
            } catch (JRException e) {
                System.out.println("JREException : "+e.getMessage());
            }

            Map<String, Object> parameters = new HashMap<String, Object>();
            parameters.put(MongoDbDataSource.QUERY_LANGUAGE, conn);

            String rptFormat = jasperInputForm.getRptFmt();
            String noy = jasperInputForm.getNoofYears();

            LOGGER.debug("rpt format " + rptFormat+", no of years " + noy);


            HashMap<String,Object> hmParams=new HashMap<String,Object>();
            hmParams.put("noy", new Integer(noy));
            hmParams.put("Title", "Employees working more than "+ noy + " Years");


            JasperReport jasperReport = getCompiledFile(reportFileName, request);

            if (rptFormat.equalsIgnoreCase("html") ) {
                JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hmParams, conn);
                // For HTML report
                generateReportHtml(jasperPrint, request, response); 
            }
            else if(rptFormat.equalsIgnoreCase("pdf")){
                // For PDF report
                generateReportPDF(response, hmParams, jasperReport, conn); 
            }
        } catch (JRException | IOException | NamingException | SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            if (conn != null) {
                conn.close();
                conn = null;
            }
        }
        return null;
    }

    private JasperReport getCompiledFile(String fileName, HttpServletRequest request) throws JRException {
        LOGGER.debug("path " + request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));

        File reportFile = new File( request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));

        // If compiled file is not found, then compile XML template
        if (!reportFile.exists()) {
            JasperCompileManager.compileReportToFile(request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jrxml"),request.getSession().getServletContext().getRealPath("/jasper/" + fileName + ".jasper"));
        }

        JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromFile(reportFile.getPath());
        return jasperReport;
    } 


    private void generateReportHtml( JasperPrint jasperPrint, HttpServletRequest req, HttpServletResponse resp) 
            throws IOException, JRException {
        LOGGER.debug("~~~ Generate HTML Report ~~~");

        HtmlExporter exporter=new HtmlExporter();

        List<JasperPrint> jasperPrintList = new ArrayList<JasperPrint>();
        jasperPrintList.add(jasperPrint);

        exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrintList));
        exporter.setExporterOutput( new SimpleHtmlExporterOutput(resp.getWriter()));

        SimpleHtmlReportConfiguration configuration =new SimpleHtmlReportConfiguration();
        exporter.setConfiguration(configuration);
        exporter.exportReport();
    }

    private void generateReportPDF (HttpServletResponse resp, Map<String, Object> parameters, 
            JasperReport jasperReport, Connection conn)throws JRException, NamingException, SQLException, IOException {
        LOGGER.debug("~~~ Generate PDF Report ~~~");

        byte[] bytes = null;
        bytes = JasperRunManager.runReportToPdf(jasperReport, parameters, conn);

        resp.reset();
        resp.resetBuffer();
        resp.setContentType("application/pdf");
        resp.setContentLength(bytes.length);
        ServletOutputStream ouputStream = resp.getOutputStream();
        ouputStream.write(bytes, 0, bytes.length);
        ouputStream.flush();
        ouputStream.close();
    } 
}
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="FirstReport" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="7ae7f135-7061-4947-be6e-66935e65141a">
    <property name="ireport.zoom" value="1.2100000000000006"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <queryString language="MongoDbQuery">
        <![CDATA[{ collectionName : 'oms_order' }]]>
    </queryString>
    <field name="Emp_code" class="java.lang.String"/>
    <field name="EmpName" class="java.lang.String"/>
    <field name="Salary" class="java.lang.Integer"/>
    <field name="Doj" class="java.lang.String"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="31" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="555" height="27" uuid="52aef86d-1b56-49fa-bb20-e4b0ad93e554"/>
                <textElement textAlignment="Center">
                    <font size="15"/>
                </textElement>
                <text><![CDATA[OMS Order Report]]></text>
            </staticText>
        </band>
    </title>
    <pageHeader>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement x="435" y="0" width="80" height="20" uuid="1130b204-cf50-4ca0-a8ad-90377eb3c0f4"/>
                <textElement textAlignment="Right"/>
                <textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
            </textField>
            <textField evaluationTime="Report">
                <reportElement x="515" y="0" width="40" height="20" uuid="9a913f85-d984-4d46-bc15-6223ad0746c3"/>
                <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
            </textField>
        </band>
    </pageHeader>
    <columnHeader>
        <band height="23" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20" uuid="14c1104f-267c-4a8e-90f9-4290ef574993"/>
                <text><![CDATA[buySideClientCode]]></text>
            </staticText>
            <staticText>
                <reportElement x="468" y="0" width="87" height="20" uuid="f4886a82-d127-4bd8-8561-8f4571763f98"/>
                <text><![CDATA[destId]]></text>
            </staticText>
            <staticText>
                <reportElement x="268" y="0" width="100" height="20" uuid="35a5e86f-5d4c-4be2-be09-e2629a2a089b"/>
                <text><![CDATA[orderAction]]></text>
            </staticText>
            <staticText>
                <reportElement x="100" y="0" width="100" height="20" uuid="322fe843-6a8f-4e08-b4bd-15ebf89c4715"/>
                <text><![CDATA[clOrdID]]></text>
            </staticText>
            <staticText>
                <reportElement x="368" y="0" width="100" height="20" uuid="c1f05f4c-5f81-43c3-9861-f33d11692874"/>
                <text><![CDATA[orderID]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="23" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="100" height="20" uuid="bce7874d-e031-4c70-86ed-22f6c0033561"/>
                <textFieldExpression><![CDATA[$F{buySideClientCode}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="468" y="0" width="87" height="20" uuid="87a25154-2e8c-4bb6-9ef3-a188577b04f6"/>
                <textFieldExpression><![CDATA[$F{destId}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="368" y="2" width="100" height="20" uuid="f65ef2db-2117-4bb1-92a6-ac1f0b2f18ef"/>
                <textFieldExpression><![CDATA[$F{orderID}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="100" y="2" width="100" height="20" uuid="88f63e67-0dd6-4e76-a428-c610b3d0ede0"/>
                <textFieldExpression><![CDATA[$F{clOrdID}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="268" y="3" width="100" height="20" uuid="52daf5f7-09e8-492d-bc46-2d5ebfd13838"/>
                <textFieldExpression><![CDATA[$F{orderAction}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="30" splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="19" splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band height="22" splitType="Stretch"/>
    </summary>
</jasperReport>
String mongoURI = "mongodb://localhost:27017/mybb";
MongoDbConnection mongConnection = null;
Map<String, Object> parameters = new HashMap<String, Object>();
try {
 mongConnection = new MongoDbConnection(mongoURI, null, null);
  parameters.put(MongoDbDataSource.CONNECTION, mongConnection);
  File jasperFile;
  jasperFile = new File("JREmp1.jasper");
  JasperCompileManager.compileReportToFile("JREmp1.jrxml",      "JREmp1.jasper");
   JasperFillManager.fillReportToFile("JREmp1.jasper", parameters);
  JasperExportManager.exportReportToPdfFile("JREmp1.jrprint");
}
} catch (Exception e) {
  e.printStackTrace();
} finally {
  if (mongConnection != null) {
mongConnection.close();
  }
}
<!-- but you need one more (secret) from mongoDB site -->
        <dependency>
            <groupId>com.jaspersoft.connectors.mongodb</groupId>
            <artifactId>js-mongodb-datasource</artifactId>
            <version>0.9.3</version>
        </dependency>
<!-- This is a secret repository for js-mongodb-datasource jar -->
    <repositories>
        <repository>
            <id>MongoJasperRepo</id>
            <url>http://jaspersoft.artifactoryonline.com/jaspersoft/jaspersoft-repo</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
MongoDbConnection conn = null;

        try {
            try {
                conn = new MongoDbConnection("mongodb://" + mongoHost + ":" + mongoPort + "/" + mongodb, null, null);
            } catch (JRException e) {
                System.out.println("JREException : " + e.getMessage());
            }