Netbeans 5.5 Beta – Java EE 5.0 support

In time for JavaOne this week, Netbeans 5.5 beta is announced complete with Java EE 5.0 support.

In general I’ve been impressed with the Netbeans 5.0+ IDE, but from my recent experience with the 5.5. daily builds, there are still plenty of bugs to be ironed out in the Wizards before they are usable. The one that has caught my eye is the ‘JSF pages from Entities’, but it’s not very stable – throws lots of exceptions, and the generated code does not yet run on JBoss 4.0+.

Selecting a Java Code Generator – update 3: Picked Grails instead

My previous attempts to find a code generator that worked for me led me nowhere. One of my collegues at work mentioned Grails, a framework based on Groovy, a scripting language close to Java in syntax and runs on a JVM. Grails is ‘Groovy on Rails’, a Groovy implementation of Ruby on Rails.

Ok, now we’re talking. I had a hard time picking up Ruby On Rails because I couldn’t get my head around the Ruby syntax, but I can see the benefits on the RoR approach.

Grails gets me to a place I’m comfortable with, and a language I can work with – I can generate my CRUD application based on my Entities and then take it from there. This is looking good. So far I have generated just a small test app to see how it hangs together, and have modified some of the generated .gsp pages – this is looking very promising so far.

I have to say I am pretty excited about Grails. I have a small project for a client to build an online store, so I’m going to be investigating building it with Grails and will see how far I get. Here’s my first post about some MySQL issues, but now I’ve resolved those I’m on the way.

Generating a new Grails app: getting MySQL connection errors

When I ‘generate-all’ on a new app configured to use MySQL in the ApplicationDataSource.groovy file, I am getting some obscure MySQL errors about cannot connect to my server, even though MySQL is running and I can connect with the mysql command line client:

<code>
   [groovy] Caused by: java.sql.SQLException: Communication failure during hands
hake. Is there a server running on localhost:3306?
   [groovy]     at com.mysql.jdbc.MysqlIO.init(Unknown Source)
   [groovy]     at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
</code>

From what I’ve discovered Googling around, this error is because an older MySQL Connector jar is being used to make the connection. I am runing MySQL 4.1 with Connector 3.1.12. Here is a post about the connector jar causing this issue. The solution is to either use the latest Connector jar for MySQL, which I am already doing, or to change the password for the user so that it is stored using the older encryption method, using old_password('password') instead of password('password')

The strage thing is though, that I have placed the latest connector jar into the lib directory in my generated app (I’ve also tried grails/lib even though I’m sure it shouldn’t go there), but it is obviously not using this jar – if I remove it and run again I get the same issue, so it is picking up an older jar on my machine somewhere. – I’m about to do a search and see what turns up (there is nothing in my classpath defined in my Windows env vars).

Update: ok – from doing a file search I solved my problem. I had earlier tried to use an older version of the mysql-connector by mistake before trying the latest version. I had ended up with both versions being beuilt into the web app and the older one was being picked up first. After deleting everything under temp and rebuilding, this solved my problem.