hello guys.
i have a problem with my communication between android app and java server using spring mobile on my phone and
spring mvc 3.
i want to transmit some generic data to the server and back.
after i send data from the client the app crashes with the exception 415: unsupported media type.
my server implementation looks like this:
Code:@RequestMapping(value = "/restclient/dosomething", method = RequestMethod.POST) public @ResponseBody Container<A, B, C> getRestTasks(@RequestBody Container<A, B, C> container){ //do something with container return container; }
my client looks like this:
the get Method is called like this:Code:public <T> T get(Class<T> gen, String url, Object obj) { HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); // Create a new RestTemplate instance RestTemplate restTemplate = new RestTemplate(); List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>(); ClientSessionHttpRequestInterceptor interceptor = new ClientSessionHttpRequestInterceptor(); interceptors.add(interceptor); restTemplate.setInterceptors( interceptors); restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter()); return gen.cast(restTemplate.postForObject(url, obj, gen)); }
Code:Container<A, B, C> prototype = new Container<X, Y, Z>(); Container<X, Y, Z> container= get(Container.class, url, prototype);
X is subclass of A
Y is subclass of B
Z is subclass of C
i think during the serialization (MappingJacksonHttpMessageConverter) typeinformation get lost.
tracing the request with wireshark i found out that the type of X, Y, Z were set to object...
i have no idea to solve this problem...
i would appreciate any usefull ideas, and sorry for my english ;-)!
Thanks a lot,
zix


Reply With Quote
