2010-09-02 22 views
25

WebLogic 11g üzerinde dışa aktarmaya çalışırken, NoClassDefFound istisnası atar. Uygulamayı kontrol ettim ve jasperreports-3.7.4.jar WEB-INF/lib klasörüne eklendi. Hata nedir?JasperReports NoClassDefFoundError istisnası 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

Kök neden yok mu? İzlemeye daha yakından bakın. Sınıfın başlatılması düz başarısız olabilir. – BalusC

+0

Web uygulamasında veya sınıfyolunda birden fazla jasperreport kavanoz var mı? – JoseK

+0

@JoseK Sınıf yolunda sadece bir kavanoz var gibi görünüyor. Bu savaşı Jasperreport.jar olmadan dağıtmaya çalıştım ama Jasper sınıflarında NoClassDefFound için istisna atar. –

cevap

32

Son olarak, bu çalışma var. net/sf/jasperreports/motor/util/JRStyledTextParser:

java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 

Unix ve Linux üzerinde güneş AWT sınıfları

X Pencere Sistemi üzerinde bir bağımlılığı var ben NoClassDefFoundError önce atıldı kök İstisna, algıladı. Bu sınıfları kullandığınızda, X istemci kitaplıklarını yüklemeyi ve bir X ekran sunucusuyla konuşmayı beklerler. Bu, müşterinizin bir GUI'si varsa anlamlıdır; ne yazık ki, istemciniz AWT kullanıyorsa, ancak bir GUI (bu benim durumumdur, bir web uygulamasından rapor üretiyorsa) bile gerekli değil. Bu yolu atlamanın yolu, sistem başlangıcında java.awt.headless=true sistem özelliğini ayarlıyor.

+1

Farklı makinelerde java.awt.headless = true çözümünü kullanmakta sorun mu vardı? Başka bir yerde çalışmıyorken, bizim dağıtımlarımızdan birinde çalışıyor. Her iki dağıtım da aynı JVM sürümünü kullanıyor. –

+0

Bana çalıştı! Sunucum [Weblogic 12c] (http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html) 'dir. Sunucu Başlatma argümanlarında, tam olarak Server Resume sekmesinde '-Djava.awt.headless = true' değerini ekledim. –

2

Metin Ayrıştırma Özel Durumu, yazı tipinin tanınmamış olduğu anlamına gelir. Bütün bir gün nedenini anlamaya çalıştım, sonunda bu sorunu SansSerif metnini kullanarak düzelttim. Linux'ta sadece birkaç yazı tipi ayrıştırılabilir. Umuyoruz, Saygılarımızla,

1

Benzer bir sorunumuz vardı. jasper java flow jar dosyasını kullanarak çözdük. Bizim için işe yaramadı

java.awt.headless=true 

.

+5

Bunu nasıl başardığınızla ilgili bazı ayrıntıları paylaşır mısınız? Aynı problemi yaşıyorum ve java flow jar'ı kullanmayı denedim ama bu benim için çalışmıyor. Kaybettiğim bir şey mi var? – user1066568

+0

bu satırı tam olarak eklemek gerekiyor? –

+0

@Elango java.awt.headless özelliğini true değerine ayarlamanız gerekir. Bu kullanılarak yapılabilir: statik { System.setProperty ("java.awt.headless", "true"); } Veya, tomcat başlatma komutunuzdaki başsız özelliği -Djava.awt.headless = true olarak ayarlayarak – kozla13

4

Aynı sorunu yaşadım ve ttf yazı tipleriyle birlikte xorg yazı tipi paketlerini yükleyerek çözdük.

0

Yeterli alan yoksa aynı hatayı alırsınız. Aynı hatayı aldım ve sunucunun sabit diskinde 0KB boş alan olduğundan öyleydi.

0

Aynı sorunu yaşadım ve/tmp alanını azaltarak çözüldü. % 100 (/ tmp klasörü) idi. Onu% 86'ya indirdim ve sunucuyu yeniden başlattım ve noclassdefinitionerror gitti ve sorun çözüldü.

0

Bu sorunu bir çok kez karşı karşıya ve çözümüm var. Bu hata, diskteki bellek alanı eksikliğinden kaynaklanıyor ... Çözmek için aşağıdakileri deneyebilirsiniz: (i) Tmp klasöründe yeterince yer açın (ii) Diskte bazı gereksiz dosyaları silmek için biraz yer açın.

İyi şanslar ..Hayır .. sorununuzu çözmelidir