Lo + Leído
Eventos destacados
Artículos para tus primeros pasos
Si estás empezando a introducirte en el mundo de Groovy y Grails, no te pierdas nuestros artículos básicos:
- Introducción a Groovy, parte 1 (Andrés Almiray)
- Introducción a Groovy, parte 2 (Andrés Almiray)
- Introducción a Groovy, parte 3 (Andrés Almiray)
- Introducción a Grails (Material Seminario ImaginaWorks)
Los protagonistas te cuentan de qué van los proyectos más importantes del mundo Groovy:
Grails
error plugin jasper
wwill - jueves 29/10/2009hola hize una pequeña prueba con el plugin jasper, lo instale y segui la documentacion del plugin
en una vista puse:
<g:jasperReport jasper="report2" format="PDF" name="Report2" />
el archivo .jasper lo gener con ireport y no tiene ningun error alli
y al pinchar sobre el link en mi app en Grails me sale un error, alguien tiene idea de que puede estar fallando, gracias de antemano.
aqui esta el el error:
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:192)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:361)
at net.sf.jasperreports.engine.JasperFillManager$fillReport.call(Unknown Source)
at JasperService$_closure1.doCall(JasperService.groovy:88)
at JasperController$_closure2.doCall(JasperController.groovy:84)
at JasperController.invokeMethod(JasperController.groovy)
at JasperController$_closure1.doCall(JasperController.groovy:55)
at JasperController$_closure1.doCall(JasperController.groovy)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Re: error plugin jasper
wwill - viernes 30/10/2009Hola, bueno desisntale el plugin y voli a instalr pero esta vez la version 0.9.5 sin embrago todo iban bien me lanzaba el pdf pero no me imprimia ningun registro , la parte del detalle en el jasper salia en blanco, no lo se quiza sea por la version de ireport que estoy usando (3.6.0 la 3.6.1 no me genera reporte cuaando especifico un grupo, parece que tiene un error) asi que de nuevo desisntale el plugin jasper y por alli encontre otros plugins que no me convencieron asi que busque la forma de hacerlo como la hacien en Java: recuperaba una conexion a la BD y utilizaba un metodo estatico de la clase JasperRunManager que importaba en los .jar de ireport, asi que despues de unas horas de prueba y prueba lo logre, no es algo elaborado de hecho habria que ponerlo en un servicio y controlador para reportes y porque no hasta crear un nuevo tag pero creo que es lo basico, lo siguiente es todo el codigo que puse en una accion de mi controlador llamado reporte y con esto pude al fin ver el dichoso PDF con todos los registros de mi BD, quiza lo mejor seria hacer esto con un Datasource Java Bean(si alguien lo puede hacer que me seria estupendo y si lo publica mejor aun) pero tuve problemas con eso asi que opte por hacerlo con sentencias SQL, copie los .jar (solo 11) a la carpeta lib de mi proyecto y copie el .jasper a la carpeta reports (hay que crearla) dentro de la carpeta web-app y lo demas fue codigo, espero le pueda servir a alguien:
def reporte={
/*recuperando una conexion */
String DRIVER="org.postgresql.Driver";
String BDURL="jdbc:postgresql://127.0.0.1:5432/mibd";
Connection conex=null;
Class.forName(DRIVER);
conex=DriverManager.getConnection(BDURL,"perseo","fedora");
/*llamando a ireport*/
String nombreJasper="report2"
def rutaReporte="/reports/"+nombreJasper+".jasper"
def rutaRealArchivoReporte=servletContext.getRealPath(rutaReporte)
//parametros
Map p = new HashMap();
//generando el bianrio
byte[] contenidoBinario = null;
File reportFile = new File(rutaRealArchivoReporte);
contenidoBinario =JasperRunManager.runReportToPdf(reportFile.getPath(),p,conex);
conex.close()
//pintando el pdf
response.setContentType("application/pdf")
response.setHeader("Content-disposition","attachment; filename="+nombreJasper+".pdf")
response.setContentLength(contenidoBinario.length);
response.getOutputStream().write(contenidoBinario)
}
Re: error plugin jasper
wwill - viernes 30/10/2009me olvidaba hay que hacer el import en el controlador de :
import java.sql.*;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;
Re: error plugin jasper
wwill - viernes 30/10/2009me olvidaba hay que hacer el import en el controlador de :
import java.sql.*;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;
Re: error plugin jasper
Gerardo E. - sábado 31/10/2009Hola:
Para utilizar el DataSource por defecto solo tienes que agregarlo al inicio de tu controlador
class ReporteController {
def dataSource
def reporte={
/*recuperando una conexion
String DRIVER="org.postgresql.Driver";
String BDURL="jdbc:postgresql://127.0.0.1:5432/mibd";
Connection conex=null;
Class.forName(DRIVER);
conex=DriverManager.getConnection(BDURL,"perseo","fedora");
*/
//Aqui utilizas el datasource de del directorio config
def conex = dataSource.getConnection()
.... //el codigo igual
Saludos,
Re: error plugin jasper
Medardo - lunes 27/06/2011Hola perdonaras con esta pregunta q te voy hacer pero necesito saber cuales son los .jar que has puesto dentro de la carpeta lib ya que yo tambien estoy realizando reportes y me sale el siguiente error.
Error 500: Executing action [reportes] of controller
[versionbeta.DocumentoController] caused exception:
java.lang.NoSuchMethodError:
net.sf.jasperreports.engine.component.DefaultComponentManager.setDesignConverter(Lnet/sf/jasperreports/engine/component/ComponentDesignConverter;)V
Servlet: grails
URI: /VersionBeta/grails/documento/reportes.dispatch
Exception Message:
net.sf.jasperreports.engine.component.DefaultComponentManager.setDesignConverter(Lnet/sf/jasperreports/engine/component/ComponentDesignConverter;)V
Caused by: Executing action [reportes] of
controller [versionbeta.DocumentoController] caused exception:
java.lang.NoSuchMethodError:
net.sf.jasperreports.engine.component.DefaultComponentManager.setDesignConverter(Lnet/sf/jasperreports/engine/component/ComponentDesignConverter;)V
Class: DocumentoController
necesito saber en que estoy fallando o que es lo que me hace falta muchas gracias
Re: error plugin jasper
wwill - viernes 30/10/2009Hola, bueno desisntale el plugin y voli a instalr pero esta vez la version 0.9.5 sin embrago todo iban bien me lanzaba el pdf pero no me imprimia ningun registro , la parte del detalle en el jasper salia en blanco, no lo se quiza sea por la version de ireport que estoy usando (3.6.0 la 3.6.1 no me genera reporte cuaando especifico un grupo, parece que tiene un error) asi que de nuevo desisntale el plugin jasper y por alli encontre otros plugins que no me convencieron asi que busque la forma de hacerlo como la hacien en Java: recuperaba una conexion a la BD y utilizaba un metodo estatico de la clase JasperRunManager que importaba en los .jar de ireport, asi que despues de unas horas de prueba y prueba lo logre, no es algo elaborado de hecho habria que ponerlo en un servicio y controlador para reportes y porque no hasta crear un nuevo tag pero creo que es lo basico, lo siguiente es todo el codigo que puse en una accion de mi controlador llamado reporte y con esto pude al fin ver el dichoso PDF con todos los registros de mi BD, quiza lo mejor seria hacer esto con un Datasource Java Bean(si alguien lo puede hacer que me seria estupendo y si lo publica mejor aun) pero tuve problemas con eso asi que opte por hacerlo con sentencias SQL, copie los .jar (solo 11) a la carpeta lib de mi proyecto y copie el .jasper a la carpeta reports (hay que crearla) dentro de la carpeta web-app y lo demas fue codigo, espero le pueda servir a alguien:
def reporte={
/*recuperando una conexion */
String DRIVER="org.postgresql.Driver";
String BDURL="jdbc:postgresql://127.0.0.1:5432/mibd";
Connection conex=null;
Class.forName(DRIVER);
conex=DriverManager.getConnection(BDURL,"perseo","fedora");
/*llamando a ireport*/
String nombreJasper="report2"
def rutaReporte="/reports/"+nombreJasper+".jasper"
def rutaRealArchivoReporte=servletContext.getRealPath(rutaReporte)
//parametros
Map p = new HashMap();
//generando el bianrio
byte[] contenidoBinario = null;
File reportFile = new File(rutaRealArchivoReporte);
contenidoBinario =JasperRunManager.runReportToPdf(reportFile.getPath(),p,conex);
conex.close()
//pintando el pdf
response.setContentType("application/pdf")
response.setHeader("Content-disposition","attachment; filename="+nombreJasper+".pdf")
response.setContentLength(contenidoBinario.length);
response.getOutputStream().write(contenidoBinario)
}