Mantis - Hessian
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
2860 | major | always | 08-21-08 23:40 | 12-16-09 16:45 | |
|
|||||
Reporter: | jghallen | Platform: | |||
Assigned To: | ferg | OS: | |||
Priority: | normal | OS Version: | |||
Status: | closed | Product Version: | 3.1.3 | ||
Product Build: | Resolution: | fixed | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | 4.0.3 | ||
|
|||||
Summary: | 0002860: Hessian/Felix OSGi - classloader problem | ||||
Description: |
We use hessian within a OSGi bundle (Apache Felix 1.0.0) to communicate with a backend server. Felix is running embedded in a Tomcat (5.5.26). When creating the hessian proxy the current classloader must be supplied in the create() method in order for the service interface to be found. Default is to use the Thread.currentThread().getContextClassLoader() which will not find the service interface. The service interface and all supporting classes are packaged in a jar file in the OSGi bundle. The problem is that the deserialisation is allways performed using the Thread.currentThread().getContextClassLoader() classloader and not the classloader that was used to create the hessian proxy. This classloader can not find the classes in the to perform a correct deserialization of the return value, a simple transfer object. Instead of returning ArrayList<TO> it will return a ArrayList of HashMaps which is the default fallback. I can see the data as expected, but the mapping is not. I think this is a bug (please correct me if I'm wrong, and give me a pointer to where I can do some read-up). What are the proposed solutions and other options if we like to continue with the hessian RMI. Brgds/J |
||||
Steps To Reproduce: | |||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
Notes | |||||
|
|||||
|
|