Grails, MySQL and Encoding Problem

I recently installed MAMP (MySQL 5.5, PHP) on Mac OS for using MySQL together with Grails. Strangely, the Chinese and Japanese character input didn’t work as expected, something that I had never experienced problems with when working in Grails.

After having wasted the better part of an afternoon I finally found out that the problem occurred contrary to my initial suspicion not inside of the new Grails 1.4 release but between Grails and the MySQL database server. Adding useUnicode=true&characterEncoding=UTF8 to the connection URL did the trick, like so:

jdbc:mysql://localhost:8889/test_db?useUnicode=true&characterEncoding=UTF8

Grails Google App Problem

When generating a Google AppEngine complient web app in Grails, there is a mistake in the MyApplication/target/war/WEB-INF/datastore-indexes.xml file which causes the shell script

$APPENGINE_HOME/bin/appcfg.sh

from doing its job properly and eventually prevent you from deploying your application to the appengine.

You have to go into the datastore-indexes.xml file and remove the following line:
xmlns=”http://appengine.google.com/ns/datastore-indexes/1.0

Thats it…

Connecting NetBeans 6.7 to SVN on Ubuntu

These are the steps I had to take to establish a connection from within NetBeans 6.7 to my Subversion Repository via a https connection.

Install svn -> sudo apt-get install svn
Install an svn client, I chose RapidSVN -> sudo apt-get install rapidsvn
In NetBeans select Team > SVN>Check out… and fill in the Form. The path to the RapidSVN executable is /usr/sbin.
Restart NetBeans and you should be able to proceed in the wizard.

JBoss Seam: @create= true and @Autocreate

As a Sean beginner I was wondering what exactly the @create= true annotation does inside of the @In injection declaration.  Here is the mystery unveiled:

– When a Seam component is requested, the container looks into the lowest context to see if its there, if not the next context up in the hierarchy is searched.

– If no instance is found thats when the above mentioned annotations kick in:

  • If the injection that triggered the search is declared as  @create=true, the component is instantiated
  • If the component is marked with a @Autocreate annotation on the class level, a new instance will be created in any case and the @create=true annotation becomes obsolete.