Thursday, 16 December 2010

iText beware!!!!

Even though it advertises itself as 'free' and 'open source'. If you use this library for commercial use you have to pay for it (and it is not cheap).

Friday, 3 December 2010

Spring MVC JSR 303 Empty Strings

* Ensures empty strings come in as NULL's
* @param binder
protected void initBinder(final WebDataBinder binder) {
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
binder.registerCustomEditor(Date.class, new StringTrimmerEditor(true));

Wednesday, 24 November 2010

Monday, 1 November 2010

Trouble shooting class errors

1) You can turn on JVM switch to dump out all loaded classes

2) NoSuchMethodError? So where is that class coming from?

In your app, before the runtime exception, place this code:

while (urls.hasMoreElements()) {
System.out.println("******************* " + urls.nextElement());

Then determine class loader:

System.out.println("$$$$$$$$$$$ " + org.springframework.core.type.AnnotationMetadata.class.getClassLoader());
On a startup listener in your app (for example), type:

3) So I see the class getting loaded from a rogue jar file, but where is this jar file coming from? What is the classpath? Running jetty with -X dumps out all jar files in the classpath, and here we spot the rogue one..... It happens to come from a maven dependency....