The point of web frameworks is supposed to improve programmer productivity, support a variety of extensions and be able to simplify things. Well I found things just the opposite. I’ve been looking for a good Java web framework to work with but in every one I try – Seams, Appfuse and now Spring Roo, I’ve run into difficulties with starting out.
Why is the setup and configuration so difficult? I look at the Get Started and Tutorial links and they seem straightforward. But the problem is that those tutorials are always missing some detail that could wrong and often does in reality.
I followed Spring Roo’s Getting Started article and I followed it very carefully yet inevitable I run into a bug or error the tutorial doesn’t mention:
Internal error in the plugin manager executing goal ‘org.codehaus.mojo:aspectj-maven-plugin:1.0:compile’: Unable to load the mojo ‘org.codehaus.mojo:aspectj-maven-plugin:1.0:compile’ in the plugin ‘org.codehaus.mojo:aspectj-maven-plugin’. A required class is missing: org/aspectj/bridge/IMessageHolder
This is the error I get after fixing 7 other errors that the tutorial convieniently never ran into when building with Oracle, Hibernate and Maven. I had to manually download and install each jar after Maven failed building. The tutorial never runs into this problem, because of course things always go smoothly for them. Even after I ran into this error, I tried posting on the Spring Forums with no luck in getting responses. So now I’m left with two choices: Try to fruitlessly Google the source of the error (which I have been doing but to no luck) or to start over with another framework from scratch (which I’ve already done twice already). What a pain. I ran into the same thing when I was trying to build with Ruby on Rails and Appfuze, I follow the tutorial exactly – I run into an error or something that the tutorial doesn’t explain – I google it / ask for help on forums to no avail – I try starting over with another framework because I can’t find the solution. JBoss Seam 3.0 doesn’t even have complete documentation! It’s awful how I can’t build something as simple as a web interface with a framework without running into numerous bugs. The only one which worked (sort of, I still had to modify some code to get it to work) in accordance with the tutorial was Grails. But, I can’t use Grails because people are unfamiliar with Groovy, forcing me to find a Java framework.
Another thing – Spring Roo only supports Eclipse (which we don’t use); I use Netbeans and there doesn’t seem to be any support for it despite it being able to create a Grails application just fine. Well since Spring owns Grails and Roo, why can’t they make Roo as easy! Inevitably I run into errors with Netbeans because it doesn’t integrate properly. Roo also has a way of editing its files from the command line – but I often find it more tedious than editing using a GUI.