在Apache Tomcat 9中运行war文件时,Jasperreport无法打开pdf

时间:2019-02-21 19:41:42

标签: java swing servlets jasper-reports

我使用Servlets和Maven以及Netbeans编写了一个简单的Java应用程序,并且 使用jasper studio 6.5.1将其添加到jaspert报告中。 在netbeans中运行我的应用程序时,我的pdf报告会正确打开,但是当我构建应用程序并在C:\ Tomcat 9.0 \ webapps中复制war文件然后调用该应用程序时,该pdf报告永远不会打开。 它不会启动任何错误,并且在C:\ Tomcat 9.0 \ logs的文件“ localhost_access_log.2019-02-21”中,我只会看到:

0:0:0:0:0:0:0:1 - - [21/Feb/2019:16:31:36 -0300] "POST /GastosJSP//Movimien?action=LISTADO1 HTTP/1.1" 200 -

因为我正在使用Maven,所以我在pom.xml中添加了下一行

  <!-- https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports -->
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>6.5.1</version>
    </dependency>

在我的servlet类中,我有:

    DBConexion conex = null;
    try {
        conex = new DBConexion();
    } catch (SQLException ex) {
        throw new ServletException("Sucedio un Error al Realizar la Conexion a la Base de Datos !", ex);
    }

    java.util.Date pdefec = null;
    java.util.Date phafec = null;

    try {
        pdefec = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("defec"));
        phafec = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("hafec"));
    } catch (ParseException ex) {
        Logger.getLogger(MovimienController.class.getName()).log(Level.SEVERE, null, ex);
    }

    java.sql.Date sqldefec = new Date(pdefec.getTime());
    java.sql.Date sqlhafec = new Date(phafec.getTime());

    // se muestra en una ventana aparte para su descarga
    JasperPrint jasperPrintWindow = null;
    try {
        HashMap parametros = new HashMap();
        parametros.put("pdefec",sqldefec);
        parametros.put("phafec",sqlhafec);

        jasperPrintWindow = JasperFillManager.fillReport("C:\\Kompass\\JAVA\\GastosJSP\\movimientosporfecha.jasper", parametros, conex.getConexion());
    } catch (JRException ex) {
        Logger.getLogger(CuentaController.class.getName()).log(Level.SEVERE, null, ex);
    }
    JasperViewer jasperViewer = new JasperViewer(jasperPrintWindow);
    jasperViewer.setVisible(true);

    // Cierra la Conexion 
    try {
        conex.closeConexion();
    } catch (SQLException ex) {
        throw new ServletException("Sucedio un Error al Cerrar la Conexion en la Base de Datos !", ex);
    }

有任何想法吗?也许我需要一些图书馆?

0 个答案:

没有答案