Announcement Announcement Module
No announcement yet.
generic type in @RequestBody Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • generic type in @RequestBody

    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:

    @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:

    public <T> T get(Class<T> gen, String url, Object obj) {
      HttpHeaders requestHeaders = new HttpHeaders();
      // Create a new RestTemplate instance
      RestTemplate restTemplate = new RestTemplate();
      List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
      ClientSessionHttpRequestInterceptor interceptor = new ClientSessionHttpRequestInterceptor();
      restTemplate.setInterceptors( interceptors);
      restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
      return gen.cast(restTemplate.postForObject(url, obj, gen));
    the get Method is called like this:

    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,