2011-08-25 10 views
5

He creado una nueva (6.6.5) proyecto en Eclipse Vaadin y yo he tratado de desplegarlo en JBoss 7.0 pero me da un GWT ClassNotFoundExceptionImplementar vaadin a JBoss 7.0 me da un ClassNotFoundException

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 

¿Debo hacer algo más para implementar las bibliotecas de gwt?

+0

Obras al añadir GWT-dev.jar, GWT-user.jar, validación-api-1.0.0.GA.jar a la WEB -INF \ lib directorio de forma manual. No parece ser la intención del plugin de eclipse para hacerlo así, debería haber una mejor solución ¿no? –

Respuesta

5

parece que algunas clases en GWT GWT-user.jar necesarios para compilar el lado del cliente widgetset Vaadin las carga el JBoss7 innecesariamente.

vaadin.jar contiene referencias a GWT-user.jar pero no es necesario durante el tiempo de ejecución, sólo durante el tiempo de compilación widgetset. Aún así JBoss quiere cargar estas clases causando el problema.

Hay un informe de error en JBoss para esto: http://community.jboss.org/thread/169575?tstart=0

Como se menciona allí, solución consiste en incluir GWT-user.jar para el paquete de implementación en WEB-INF/lib con el vaadin.jar, parece trabajo.

+0

Vea también: ticket http://dev.vaadin.com/ticket/7822 –

1

Vaadin Eclipse plugin crea dependencias de bibliotecas de archivos jar GWT y generalmente Eclipse debe hacerse cargo de la ruta de clase en tiempo de ejecución cuando se despliega.

Como el nombre del paquete com.google.gwt.user.client sugieren que esto debe estar en GWT-user.jar.

El GWT-dev.jar sólo será necesario cuando se compila el código del lado del cliente con GWT.

¿Está utilizando complementos? Los complementos (y sus dependencias) siempre deben agregarse a WEB-INF/lib para que las clases del lado del servidor estén disponibles para la aplicación y el código del lado del cliente disponible para el compilador de GWT.

El posible causa del problema es (innecesario) la dependencia a la clase del lado del cliente que no está disponible en el servidor en tiempo de ejecución. Por lo tanto, también puede verificar su código para detectar dependencias innecesarias del lado del servidor a las clases GWT del lado del cliente (como HasWidgets).

1

Revise su código para asegurarse de no acceder accidentalmente a esta clase com.google.gwt. ** desde su código. Como se dijo anteriormente, no hay necesidad de implementar bibliotecas gwt en el servidor.

Cuestiones relacionadas