Hi Alex,
I had a look at the code you have uploaded and found 2 things:
1. You have excluded javassist from GeDA core dependency - that cannot work because javassist is used by default method synthesizer (its the class that generates fast copy pipes for fields and it uses javassist to self generate during runtime). Without it GeDA simply will not work (at least for spring-integration module). If you have issues with javassist you can use bcel as alternative but this is not part of spring-integration unfortunately and you will need to use the core only. <-- this issue however has nothing to do with the error (but it does appear when you fix the original issue, see point 2)
Full dependencies:
<dependency>
<groupId>com.inspire-software.lib.dto.geda</groupId>
<artifactId>geda.core</artifactId>
<version>3.1.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>
<dependency>
<groupId>com.inspire-software.lib.dto.geda</groupId>
<artifactId>geda.spring-integration</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
2. You are using com.fasterxml.jackson.databind.ObjectMapper - which is class. In order to use GeDA spring @Transferable annotation all classes get auto proxied - this is how Spring AOP works. So what you get is a proxy over the com.fasterxml.jackson.databind.ObjectMapper and Spring cannot determine what type of object it is and therefore you get this message -
java.lang.IllegalArgumentException: Can not set com.fasterxml.jackson.databind.ObjectMapper field com.example.test.web.controller.HomeController.objectMapper to com.sun.proxy.$Proxy17
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146) ~[na:1.6.0_51]
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150) ~[na:1.6.0_51]
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63) ~[na:1.6.0_51]
which reads that for field HomeController.objectMapper Spring cannot set object $Proxy17 (which is the proxied ObjectMapper). Therefore you get this error. If you create a wrapper Service with an interface that delegates all methods to ObjectMapper objects inside it.
class MyObjectMapperServiceImpl implements MyObjectMapperService {
private ObjectMapper obj = new ObjectMapper();
... methods ...
}
then I think it will work fine.
Generally, it is not a good idea to have beans made from classes - you should use interfaces for every bean - then Spring AOP works fine.
I also attached the sample-log.txt that shows that all starts working after these modifications and page source for the generated home.html (this is just a proof that it works).
Hope this helps.