Using Roo has been really awesome! I would recommend it to anyone starting a web project for the first time that really wanted to use Spring and Java.
Just ran into this error tonight and thought I would blog a little bit about it in case others run into the same error… *plus* I wanted to show a bit of this new Google Guava project!
1 2 3 4
| org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from 'java.util.Se
t' to 'java.lang.String'
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:181)
at org.springframework.expression.spel.support.StandardTypeConverter.convertValue(StandardTypeConverter.java:66) |
This meant that we need a converter for the show view since the default create from Roo does not take care of the ONE_TO_MANY relationship. Below is the code that was needed in my case.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| /**
* A central place to register application Converters and Formatters.
*/
@RooConversionService
public class ApplicationConversionServiceFactoryBean extends FormattingConversionServiceFactoryBean {
Converter <Set <Property >, String > getPropertySetConverter () {
return new Converter <Set <Property >, String >() {
public String convert (Set <Property > properties ) {
return Joiner. on(","). join(properties. toArray()); // 1
}
};
}
@Override
protected void installFormatters (FormatterRegistry registry ) {
super. installFormatters(registry );
registry. addConverter(getPropertySetConverter ());
}
} |
Notice the line:
1
| return Joiner.on(",").join(properties.toArray()); // 1 |
This is using the Google Guava project to create a String instead of using the old school StringBuilder approach.