Fun with Unified Class Loader on JBoss with Grails web-app deployments

I have just been caught out by the Unified Class Loader approach on JBoss 4.0.x. I have a 4.0.1 server running a couple of differnt webapps, and each is packaged with their own jars in WEB-INF/lib.

On attempting to deploy a test Grails app to the same server, I ran into all sorts of MethodNotFoundException, and JSP compilation issues that had me scratching my head for a while. I tried removing older copies of Jars like commons.lang.jar from the already deployed (older) web apps, as most of the issues were to do with new methods added in the later version of commons-lang, but no luck.

I finally stumbled across the solution – to disable the Unified Class Loader in JBoss, so that each web app would be self contained. This fixed my issues.

I changed this file:

<code>
/jboss/server/default/deploy/jbossweb-tomcat50.sar/jboss-service.xml
</code>

changing this line:

<code>
&lt;attribute name="UseJBossWebLoader"&gt;true&lt;/attribute&gt;
</code>

to

<code>
&lt;attribute name="UseJBossWebLoader"&gt;false&lt;/attribute&gt;
</code>

For exact details of the errors, check out the JIRA entries I created (and subsequently closed):

http://jira.codehaus.org/browse/GRAILS-158

http://jira.codehaus.org/browse/GRAILS-160

ZDNet: Getting started with the Google Web Toolkit

ZDNet have a quick start guide in Ed Burnette’s blog entry showing you how to get started with the Google Web Toolkit (GWT).

The GWT was annouced this year at JavaOne and gives Java developers a pure Java approach to developing AJAX applications, by converting the Java code into HTML and Javascript. The GWT gives you a Java API which will be familiar to Java developers, and allows you to develop your app using the provided Java components, and then when ready generate the HTML and Javascript representation of the app with AJAX functionality. This is an awesome approach to avoiding Javascript development, which is hard to debug and develop (in comparison with Java and the rich IDE tools available).