2010-09-02 14 views
25

Al intentar exportar en WebLogic 11g, arroja la excepción NoClassDefFound. Revisé la aplicación WAR y se incluye jasperreports-3.7.4.jar en la carpeta WEB-INF/lib. ¿Cuál es el error?Excepción de JasperReports NoClassDefFoundError en net.sf.jasperreports.engine.util.JRStyledTextParser

StackTrace

java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/util/JRStyledTextParser at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:181) at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:76) at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:86) at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:56) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) at org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.fillReport(AbstractJasperReportsView.java:676) at

+0

¿No hay una causa raíz? Mira más en el rastro. La inicialización de la clase podría haber fallado. – BalusC

+0

¿Hay varios jasperreport jar en la aplicación web o classpath? – JoseK

+0

@JoseK Parece que solo existe un jar en classpath. Intenté implementar este WAR sin Jasperreport.jar en él, pero arroja una excepción para NoClassDefFound en las clases de Jasper. –

Respuesta

32

Por último, tengo que trabajar. He detectado la excepción de la raíz, que fue lanzada antes que NoClassDefFoundError: net/sf/jasperreports/motor/util/JRStyledTextParser:

java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 

Las clases AWT Sun en UNIX y Linux tienen una dependencia del sistema X Window. Cuando utiliza estas clases, esperan cargar las bibliotecas de X client y poder hablar con un servidor de visualización X. Esto tiene sentido si su cliente tiene una GUI; desafortunadamente, es necesario incluso si su cliente usa AWT pero no tiene una GUI (que es mi caso, generar un informe desde una aplicación web)

La forma de omitir esto, es establecer una propiedad del sistema java.awt.headless=true en el inicio del sistema.

+1

¿Alguien ha tenido problemas al usar la solución java.awt.headless = true en una máquina diferente? Nos funciona en una de nuestras implementaciones, mientras no trabajamos en otra. Ambas implementaciones usan la misma versión de JVM. –

+0

¡Me ha funcionado! Mi servidor es el [Weblogic 12c] (http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html). Agregué el valor '-Djava.awt.headless = true' en los argumentos de inicialización del servidor, exactamente en la pestaña Reanudar del servidor. –

2

Excepción de análisis de texto significa que la fuente no ha sido reconocida. Pasé un día entero tratando de entender por qué, luego finalmente solucioné este problema usando el texto SansSerif. En Linux, solo se pueden analizar algunas fuentes. La esperanza ha ayudado, saludos cordiales

1

Tuvimos un problema similar. lo resolvimos usando el archivo jasper java flow jar. el

java.awt.headless=true 

no funcionó para nosotros.

+5

¿Podría compartir algunos detalles sobre cómo lo logró? Estoy teniendo el mismo problema e intenté usar el contenedor de flujo de Java, pero eso tampoco funciona para mí. ¿Se me escapa algo? – user1066568

+0

donde exactamente necesita agregar esta linea? –

+0

@Elango Necesita establecer la propiedad java.awt.headless en verdadero. Esto se puede hacer usando: static { System.setProperty ("java.awt.headless", "true"); } O, estableciendo la propiedad sin cabeza en el comando de inicio de tomcat como -Djava.awt.headless = true – kozla13

4

Tuve el mismo problema y lo hemos resuelto instalando los paquetes de fuentes xorg junto con las fuentes ttf.

0

Recibirá el mismo error si no hay suficiente espacio. Tuve el mismo error y fue porque había 0 KB de espacio libre en el disco duro del servidor.

0

Tuve el mismo problema y se resolvió al reducir el espacio/tmp. Era 100% (carpeta/tmp). Lo reduje al 86% y reinicié el servidor y el noclassdefinitionerror desapareció y el problema se resolvió.

0

Enfrentado con este problema varias veces y tengo la solución. Este error se debe a la falta de memoria en el disco ... Puede intentar lo siguiente para resolver: (i) Haga suficiente espacio en la carpeta tmp (ii) Borre algunos archivos innecesarios en el disco para dejar espacio.

Buena suerte..Espero ... debería resolver su problema

Cuestiones relacionadas