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.

Simplifying JDBC coding with Spring JDBC

If you are developing an app that replies on pure JDBC as it’s data access mechanism, consider looking at the JDBC support in the Spring Framework to help you out.

The Spring JDBC support greatly simlifies JDBC development by introducing a template based approach which encapsulates the majority of the coding you normally have to do by hand with JDBC. For examples and a comparision between raw JDBC and the Spring approach, look at this article on the java.net site.

No HDMI output on low-end PS3 and XBox360 HD-DVD drive – movies will default to lower resolution

This is an interesting point. Both PS3 versions, the $499 20GB version and the $599 60GB version will include the new Blu-Ray DVD drive, which many buyers will be looking at as a cheap way to get one of the first Blu-Ray players for their home, without paying a hefty $1000 price tag for a standalone player (similar to the PS2 approach when it first shipped with a DVD player).

However, only the $599 version will include an HDMI output, which is what the industry has agreed on as the standard output to a HD display to display the content in the highest resolution possible. The new add-on HD-DVD drive for the XBox360 also has the same issue – no HDMI output.

This is important, as this article on the Register notes, because without the HDMI output there is no HDCP copy protection, and therefore the output from the hidef disks will default to a lower resolution output. Something to be aware of…