我使用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);
}
有任何想法吗?也许我需要一些图书馆?