2011-08-25 13 views
5

bir ClassNotFoundException verir ve JBoss 7.0 üzerinde dağıtmak denedim ama bana GWT ClassNotFoundExceptiondağıtma JBoss 7.0 için Vaadin bana yeni bir Vaadin Tutulma (6.6.5) projesi oluşturduk

Caused by: java.lang.ClassNotFoundException: com.google.gwt.user.client.ui.HasWidgets from [Module "deployment.test.war:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:358) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:307) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:101) 
    ... 64 more 
verir

gwt kitaplıklarını dağıtmak için fazladan bir şeyler yapmam gerekir mi?

+0

İşleri bakın gwt-user.jar, doğrulama-api-1.0.0.GA.jar WEB bir eklentiyi Bunu düzeltmek için yayınladı -INF \ lib dizini el ile. Eclipse eklentisinin amacı gibi görünmüyor, daha iyi bir çözüm olmalı mı? –

cevap

5

Vaadin istemci tarafı widget'ını derlemek için gerekli olan gwt-user.jar içindeki bazı GWT sınıflarının gereksiz yere JBoss7 tarafından yüklendiğini düşünür.

vaadin.jar, gwt-user.jar dosyasına atıflar içerir, ancak yalnızca çalışma sırasında hazırlanması için gereklidir. Hala JBoss bu sınıfları soruna neden olmak istiyor.

bunun için JBoss bir hata raporu var: orada belirtildiği gibi http://community.jboss.org/thread/169575?tstart=0

, geçici çözüm vaadin.jar ile WEB-INF/lib klasöründe dağıtım paketine gwt-user.jar dahil etmektir, görünüyor iş.

+0

Ayrıca bakınız: Bilet http://dev.vaadin.com/ticket/7822 –

1

Vaadin Eclipse eklentisi, gwt jar dosyalarına kitaplık bağımlılıkları oluşturur ve genellikle Eclipse, dağıtım sırasında çalışma zamanı sınıf yoluna dikkat etmelidir.

Paket adı olarak com.google.gwt.user.client bunun gwt-user.jar içinde olması gerektiğini önerdi.

GWT ile istemci tarafı kodunu derlerken gwt-dev.jar'a yalnızca ihtiyaç duyulmalıdır.

Eklenti kullanıyor musunuz? Eklentiler (ve bağımlılıkları), sunucu tarafı sınıflarını GWT derleyicisine sunulan uygulama ve istemci tarafı kodunun kullanılabilir hale getirmek için her zaman WEB-INF/lib'e eklenmelidir.

Sorunun olası nedeni, (çalışma zamanında) sunucuda bulunmayan istemci tarafı sınıfına bağımlılıktır (gereksiz). Bu nedenle, istemci tarafındaki GWT sınıflarına (HasWidgets gibi) gereksiz sunucu tarafı bağımlılıkları için kodunuzu da kontrol edebilirsiniz.

1

Kodunuzdan bu com.google.gwt. ** sınıfına yanlışlıkla erişmediğinizden emin olmak için kodunuzu kontrol edin. Yukarıda belirtildiği gibi, sunucuda gwt kitaplıklarının dağıtılmasına gerek yoktur.