Foros del Web » Programación para mayores de 30 ;) » Java »

scriptlet en ireport

Estas en el tema de scriptlet en ireport en el foro de Java en Foros del Web. Hola a todos los del foro, tengo un problema con los scriplet de ireport el cual tratare de explicar. Hice un reporte al cual le ...
  #1 (permalink)  
Antiguo 20/12/2006, 02:23
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 17 años, 4 meses
Puntos: 0
scriptlet en ireport

Hola a todos los del foro, tengo un problema con los scriplet de ireport el cual tratare de explicar.

Hice un reporte al cual le agregue un scriptlet, todo funciona bien si ejecuto el reporte desde el ireport me lo muestra de manera correcta, el problema viene cuando mando llamar al reporte desde un JSP ya que me marca 3 errores, en base a lo mismo, que dicen facturaScriptlet cannot be resolved to a type

Al principio tenia mi scriplet dentro de la carpeta en donde tengo mis reportes, lo cambie a la carpeta web-inf\classes y me arroja el siguiente error

java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java :620)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findC lassInternal(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.findC lass(WebappClassLoader.java:855)
at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1304)
at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1186)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at net.sf.jasperreports.engine.util.JRClassLoader.loa dClassForName(JRClassLoader.java:72)
at net.sf.jasperreports.engine.fill.JRFillDataset.cre ateScriptlet(JRFillDataset.java:445)
at net.sf.jasperreports.engine.fill.JRFillDataset.set ParameterValues(JRFillDataset.java:590)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setP arameters(JRBaseFiller.java:879)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:708)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill (JRBaseFiller.java:666)
at net.sf.jasperreports.engine.fill.JRFiller.fillRepo rt(JRFiller.java:63)
at net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:402)
at net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:234)
at net.sf.jasperreports.engine.JasperRunManager.runRe portToPdf(JasperRunManager.java:203)
at org.apache.jsp.repFactura_jsp._jspService(org.apac he.jsp.repFactura_jsp:102)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:868)
at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

Alguien tiene una idea de como resolver este problema

Gracias
  #2 (permalink)  
Antiguo 20/12/2006, 05:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: scriptlet en ireport

java.lang.UnsupportedClassVersionError: Bad version number in .class file

Eso quiere decir, habitualmente, que has compilado tu clase con un JDK y lo estas intentando ejecutar con una versión anterior. O que compilaste tus otras clases contra una version diferente e incompatible de la clase que te dice en el error.

Comprueba JDKs, versiones de clases y librerias etc para ver que usas las mismas en compilacion y en ejecucion.
  #3 (permalink)  
Antiguo 20/12/2006, 09:58
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: scriptlet en ireport

Gracias por responder, ya solucione ese problema de las versiones, pero me sigue dando el error de cannot resolved to a type

ya intente poner el scriptlet de manera interna, lo puse en un archivo por separado, lo puse en el directorio en donde estan mis reportes y en el web-inf\classes y el resultado es el mismo

saludos
  #4 (permalink)  
Antiguo 20/12/2006, 14:02
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: scriptlet en ireport

"facturaScriptlet cannot be resolved to a type" parece un problema de classpath, en este caso que las clases del JasperReport no encuentran tu clase. Creo recordar que el classpath para el JasperReport se ponia explicitamente de alguna forma y no bastaba con ponerlo en los sitios habituales (WEB-INF/classes, WEB-INF/lib) pero no puedo darte muchos detalles ya que yo no uso clases propias con el JasperReports, lo hago a base de XML y no me ha pasado nunca eso.

Suerte
  #5 (permalink)  
Antiguo 20/12/2006, 19:30
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: scriptlet en ireport

gracias por la respuesta... ya encontre el error y era que habia tomado el .class que me habia generado el ireport y lo que hice fue compilar por separado el archivo .java y el .class que me genero lo copie al \classes y ya funciono de maravilla...

Algun link que me pudieran dar para usar XML con el ireport
  #6 (permalink)  
Antiguo 21/12/2006, 04:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: scriptlet en ireport

Han cambiado mucho el sitio del iReports y el JasperReports y no se donde lo han puesto ahora, pero es relativamente sencillo ya que solo tienes que poner un DataSource de un tipo diferente (XML Data source) apuntando a un fichero XML de prueba que tengas, ponerle el XPath que apunte a los objetos que haran de filas del report (/XML/FACTURA/LINEAS_FACTURA por ejemplo) y el resto funciona igual que con JDBC, que yo sepa.

Eso con el iReports
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:53.