Java - Ayuda Error generar reportes desde JAR

   
Vista:

Ayuda Error generar reportes desde JAR

Publicado por Hugo (4 intervenciones) el 07/06/2014 17:56:06
Hola amigos soy nuevo en el foro, y además nuevo en la programación JAVA, quería solicitar su valiosa ayuda con un problema que tengo:

Tengo una aplicacion Java utilizando Eclipse y los reportes diseñados en Ireport 5.5.0, al correr la aplicación dentro de Eclipse los reportes se generan sin ningún problema, luego genere un jar utilizando FAT-JAR, y al ejecutar la aplicación desde el Jar no genera los reportes, la corri desde la ventana de comandos y me da el siguiente error:

Grave: End event threw exception
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:283)
at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:220)
at org.apache.commons.digester.Rule.end(Rule.java:257)
at org.apache.commons.digester.Digester.endElement(Digester.java:1345)
at net.sf.jasperreports.engine.xml.JRXmlDigester.endElement(JRXmlDigester.java:199)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp l$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(U
nknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next
(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
nknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
nknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown So
urce)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Un
known Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.p
arse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1892)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:
289)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:
276)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:265
)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:210
)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:194
)
at ReportesVtas.runReporte(ReportesVtas.java:186)
at PRepCons.actionPerformed(PRepCons.java:231)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: net.sf.jasperreports.engine.JRRuntimeException: No query executer fac
tory registered for the 'SQL' language.
at net.sf.jasperreports.engine.util.JRQueryExecuterUtils.getExecuterFact
ory(JRQueryExecuterUtils.java:114)
at net.sf.jasperreports.engine.design.JRDesignDataset.queryLanguageChang
ed(JRDesignDataset.java:1180)
at net.sf.jasperreports.engine.design.JRDesignDataset.setQuery(JRDesignD
ataset.java:647)
at net.sf.jasperreports.engine.design.JasperDesign.setQuery(JasperDesign
.java:791)
... 65 more

Mensaje de Error:org.xml.sax.SAXParseException; lineNumber: 51; columnNumber: 16
; Error at line 51 char 16: No query executer factory registered for the 'SQL' language.


Según esta traza el error es causado en: "Caused by: net.sf.jasperreports.engine.JRRuntimeException: No query executer factory registered for the 'SQL' language."

Ya verifique el archivo "defaultjasperreports" dentro del FatJar y allí esta registrado el SQL para el query executer Factory, estas son las líneas:

# Query executer settings
net.sf.jasperreports.query.executer.factory.sql=net.sf.jasperreports.engine.query.JRJdbcQueryExecuterFactory
net.sf.jasperreports.query.executer.factory.SQL=net.sf.jasperreports.engine.query.JRJdbcQueryExecuterFactory
net.sf.jasperreports.query.executer.factory.hql=net.sf.jasperreports.engine.query.JRHibernateQueryExecuterFactory
net.sf.jasperreports.query.executer.factory.HQL=net.sf.jasperreports.engine.query.JRHibernateQueryExecuterFactory
net.sf.jasperreports.query.executer.factory.xPath=net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory
net.sf.jasperreports.query.executer.factory.XPath=net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory

También van todos los archivos de reportes y librerías en el FatJar.

Ya busque por toda la red una solución y hasta ahorita no he encontrado nada que me guie, alguien que me ilumine.

De antemano muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda Error generar reportes desde JAR

Publicado por Sauletekis (2 intervenciones) el 08/06/2014 11:00:02
Comprueba que en tu JAR tienes todas las librerías externas utilizadas en el proyecto. Puedes comprobarlo descomprimiendo el JAR con WinRar por ejemplo. Si no existen, ese el problema. Deberás agregarlas correctamente en eclipse cómo "source folder"

Espero que te sirva.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Error generar reportes desde JAR

Publicado por Hugo Padilla (4 intervenciones) el 09/06/2014 16:04:11
Efectivamente hay 2 librerías que no me agrega: commons-beanutils-1.8.3 y jasperreports-extensions-3.5.3.

Cuando decis agregarlas correctamente, como seria exactamente?, yo las agrego desde "Java Build Path" => "Add External Jars" , pero los Jars origen los tengo en una carpeta que se encuentra fuera de las carpetas del proyecto. Deberia de crear alguna carpeta dentro del proyecto llamada "source folder" y agregarlos desde allí?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Error generar reportes desde JAR

Publicado por HugoPadilla (4 intervenciones) el 09/06/2014 19:16:08
Una cosa mas volvi a generar el Jar para estar seguro de que dichas librerías estaban marcadas y aun cuando están marcadas no las agrega.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Error generar reportes desde JAR

Publicado por Hugo Padilla (4 intervenciones) el 13/06/2014 19:48:46
Problema resuelto.

Por si alguien mas tiene algún problema similar, lo solucione generando el JAR con la opción "Runnable Jar File" en eclipse anteriormente lo estaba generando con "Fat Jar Exporter", probablemente fue el plugin de Fat Jar que agregue.

Muchas Gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar