deploy new vaadin project in jboss 6

Hello evrybody.
I think that there is a bug in the jar when trying to deploy in jboss.
The problem is that there is no problem when deploying in tomcat. Evrything work perfectly with tomcat.
And from what i know the jboss 6 default server configuration is very strict. de container scan evry single class and check if it can be found in the classpath.

That’s what i get when i try to deploy a new empty project in jboss 6:

DEPLOYMENTS IN ERROR:
Deployment “vfs:///H:/java/server/jboss-6.0.0.20100721-M4/server/default/deploy/vaadin.lol.war” is in error due to the following reason(s): java.lang.ClassNotFoundException: com.google.gwt.event.dom.client.FocusHandler

at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1228) [:2.2.0.Alpha6]

at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:905) [:2.2.0.Alpha6]

at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.checkComplete(MainDeployerPlugin.java:87) [:6.0.0.20100721-M4]

at org.jboss.profileservice.deployment.ProfileDeployerPluginRegistry.checkAllComplete(ProfileDeployerPluginRegistry.java:118) [:0.1.0.Alpha1]

at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:133) [:6.0.0.20100721-M4]

at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:56) [:6.0.0.20100721-M4]

at org.jboss.bootstrap.impl.base.server.AbstractServer.startBootstraps(AbstractServer.java:827) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]

at org.jboss.bootstrap.impl.base.server.AbstractServer$StartServerTask.run(AbstractServer.java:417) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]

at java.lang.Thread.run(Unknown Source) [:1.6.0_21]

as you can see there is a missing class com.google.gwt.event.dom.client.FocusHandler. And when i open vaadin-6.4.7 (the last version) there isn’t this gwt class.

I am asking if someone got the same problem or if i made something wrong ?

The check is too strict - those classes are only used on the client side, compiled into javascript by the GWT compiler, and should never be loaded on the server side. There are indirect references to them from some server side classes, mostly via “@ClientWidget” annotations pointing to Vaadin client side classes which refer to them, but these should not cause problems. In GlassFish 3.0.0, there was a somewhat similar class loading issue - not an explicit check but too eager class loading IIRC - that was fixed in 3.0.1.

You could include gwt-user.jar (and maybe even gwt-dev.jar) to your deployment as a workaround, or configure the server so that it does not try to check com.google.gwt.* or something like that.

Thanks for your answer.
I tried to put gwt-dev and gwt-user in my web-inf/lib and i also tried to them directly on the lib folder of jboss without success.

If i make a fresh installation of jboss 6 and only put thoses 2 library the serveur just don’t want to start with a strange error message :

19:46:13,399 ERROR [AbstractKernelController]
Error installing to Start: name=WebServer state=Create: java.lang.NoSuchMethodError: org.apache.tomcat.util.IntrospectionUtils.setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z
at org.apache.tomcat.util.DomUtil.setAttributes(DomUtil.java:230) [:6.0.0.20100721-M4]

at org.apache.tomcat.util.modeler.modules.MbeansDescriptorsDOMSource.execute(MbeansDescriptorsDOMSource.java:114) [:6.0.0.20100721-M4]

at org.apache.tomcat.util.modeler.modules.MbeansDescriptorsDOMSource.loadDescriptors(MbeansDescriptorsDOMSource.java:76) [:6.0.0.20100721-M4]




DEPLOYMENTS IN ERROR:
Deployment “WebServer” is in error due to the following reason(s): java.lang.NoSuchMethodError: org.apache.tomcat.util.IntrospectionUtils.setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z, ERROR
Deployment “jboss.web:service=WebServer” is in error due to the following reason(s): ** NOT FOUND Depends on ‘jboss.web:service=WebServer’ **

It still don’t work i tried evrything. I can’t understand why we can’t deploy Vaadin in the most used application server in company environnement in his last version.

Maybe jboss is too strict but it still strange.

Is it something i can do to fix this ? This is the only thing stopping my developpement with vaadin coz i am definitly loving this framework and all thoses addons.

Thanks

I tested JBoss 6.0.0.M6 as follows:

  1. Download and unzip JBoss 6
  2. Create a new Vaadin project using the Eclipse plugin
  3. Compile a widgetset
  4. Export the project to a WAR file (myproj.war)
  5. Copy the WAR file to /server/default/deploy
  6. Start JBoss6

After 40 seconds JBoss 6.0.0.M6 was up and running and the project was available at http://localhost:8080/myproj. No problems occured so the question is - what did you do differently?

I downloaded the last version of Jboss which is M5. i installed it and try the deploy my vaadin project. And it worked…

Seems like the M4 version had some problems. I am so sad to see that jboss developers release an m4 version of their server which can do so many complicated things (which are never used is most of case) but don’t manage to handle a deployement of a simple war integrating a framework in one of their last server release.

Do you think java language will one day be easy to use ? I am not waiting for an answer to this question coz we all know that it will never be the case :p.

Anyway i am happy to see such a great team developping a nice and accessible framework like vaadin. You represent my hope to see java used in public website replacing that uggly (but so easy) php langage.

Cya and Thanks again ! (don’t worry i am not going to suicide today, tomorrow is another matter…)

(and sorry for my bad english in this post, you all already understood that i am from the the cheese country).