es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Advertencia: Invocación de método no verificada: método fillReport en la clase net.sf.jasperreports.engine.JasperFillManager.

Estoy utilizando Oracle J Developer 12c y Jasper Report 5.6.0 para realizar mi informe. El informe funciona en local (WebLogic integrado) y no hay errores, pero hay muchos avisos:

Advertencia: la invocación del método no controlado: método fillReport en la clase net.sf.jasperreports.engine.JasperFillManager se aplica a los tipos dados requeridos: net.sf.jasperreports.engine.JasperReport,java.util.Map<java.lang.string,java.lang.object>,java.sql.Connection encontrado: net.sf.jasperreports.engine.JasperReport,java.util.Map,java.sql.Connection.

Cuando ejecuto mi aplicación “informe” en el servidor Glassfish4.1, también obtengo estos errores desde el registro del servidor:

java.lang.NoClassDefFoundError: No se pudo inicializar la clase net.sf.jasperreports.engine.util.JRStyledTextParser

Este es mi informe:

“`
public void runReport(String repPath, java.util.Map param) throws Exception {
Connection conn = null;
try {
HttpServletResponse response = getResponse();
ServletOutputStream out = response.getOutputStream();
response.setHeader("Cache-Control", "max-age=0");
response.setContentType("application/pdf");
ServletContext context = getContext();
InputStream fs = context.getResourceAsStream("/Reports/" + repPath);//foldername
JasperReport template = (JasperReport)JRLoader.loadObject(fs);
template.setWhenNoDataType(WhenNoDataTypeEnum.NO<em>DATA</em>SECTION);
conn = getConnection();
JasperPrint print = JasperFillManager.fillReport(template, param, conn);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(print, baos);
out.write(baos.toByteArray());
out.flush();
out.close();
FacesContext.getCurrentInstance().responseComplete();
} catch (Exception jex) {
jex.printStackTrace();
} finally {
close(conn);
}
}

public Connection getDataSourceConnection(String dataSourceName) throws Exception {

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(dataSourceName);

return ds.getConnection();

}

private Connection getConnection() throws Exception {
//System.out.println(con);
return getDataSourceConnection("jdbc/SSMODS");

}

public ServletContext getContext() {
return (ServletContext)getFacesContext().getExternalContext().getContext();
}

public HttpServletResponse getResponse() {
return (HttpServletResponse)getFacesContext().getExternalContext().getResponse();
}

public static FacesContext getFacesContext() {
return FacesContext.getCurrentInstance();
}

public BindingContainer getBindings() {
return BindingContext.getCurrent().getCurrentBindingsEntry();
}

public void close(Connection con) {
if (con != null) {
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}

}“`</java.lang.string,java.lang.object>

Tags:  ,

Answer

  1. Avatar for davy.ai

    La advertencia que se muestra sugiere que hay una invocación de método no verificada que se está aplicando a los tipos dados. Específicamente, el método fillReport en la clase net.sf.jasperreports.engine.JasperFillManager. Parece que la invocación no tiene un parámetro de tipo java.util.Map<string, object="">.

    Sin embargo, parece que esta advertencia se puede ignorar con seguridad ya que el informe funciona sin errores en el WebLogic integrado.

    El error que aparece en el servidor Glassfish sugiere que la clase net.sf.jasperreports.engine.util.JRStyledTextParser no se pudo inicializar. Esto indica que la clase necesaria está ausente o no se encuentra en la ubicación correcta. Para solucionar el problema, el archivo jar que contiene la clase requerida debe incluirse en la ruta de acceso de clases de la aplicación.

    Además de estos problemas, parece que el código está utilizando las bibliotecas oracle-jdeveloper-12c y jasper-report-5.6.0 para generar un informe en formato PDF. El código obtiene la plantilla de informe de un recurso de contexto y genera una salida en PDF a partir del objeto cargado. En general, el código parece estar escrito de manera altamente modular y bien organizada para generar informes de manera efectiva.</string,>

Comments are closed.