Comment renvoyer du JSON à partir du printemps de service RESTful et l'accès à l'aide RestTemplate classe

J'ai fait un printemps de service web RESTful pour donner de la liste de chansons en JSON formate, pour cela, j'ai ajouté des noms de chansons dans une Liste et je suis retourné ce à partir de l' @Restcontroller de mon Ressort du service web RESTful.DONC @RestController automatiquement le processus de cette Liste et rturns moi cette forme JSON ["song1","song2","song3"].

Maintenant tout organisme peut me dire comment je peux retourner noms de la chanson avec un peu plus de l'attribut comme
- (Nom de la chanson , du Cinéma, Parolier, Chanteur(s), le Total des hits)
Par Exemple - (“Lungi Dance”, “Chennai Express”, "Honey Singh", "Honey Singh”, 5000).Aussi me dire comment puis-je accéder à mon spring MVC de l'application de l'appel de ce service web à l'aide de RestTemplate.
Merci de m'indiquer les modifications dans les fichiers ci-dessous.

À l'intérieur de mon @RestController classe de mon Ressort du service web RESTful

@RequestMapping(value = "/topsongsWS", headers="Accept=application/json")
    Public List<?> getTopSongsWS() 
    {
            List<String> l1 = new ArrayList<String>();
            l1.add("mann mera (Table No 21)");
            l1.add("Lazy lad (Ghanchakkar)");
            l1.add("Oye boy Charlie (Matru Ki Bijli Ka Mandola)");
            l1.add("Blue Hai Pani Pani");
            l1.add("Latt lag gayi (Race 2)");
            return l1;
    }

À l'intérieur de mon config-servlet.xml

<context:component-scan base-package="com.songs.service.controller" />
<mvc:annotation-driven />

À l'intérieur du contrôleur de mes spring MVC app appel à ce service web RESTful

@RequestMapping(value="/topsongs",method=RequestMethod.POST)
    public String getTopSongs(ModelMap md)
    { 
            //did stuff to configure headers & entity
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
            HttpEntity<String> entity = new HttpEntity<String>(headers);

            //this is the URL of my RESTfulservice returning JSON format    ["song1","song2","song3"]   
            String url="http://localhost:7001/SongAppWS/songappWS/topsongsWS";
            RestTemplate rt=new RestTemplate();
            ResponseEntity<?> listoftopmovies=rt.exchange(url,HttpMethod.GET,entity, List.class);
            md.addAttribute("listname", "Top 5 Songs of The Week:");
            String response=listoftopmovies.getBody().toString();
            List<String> listed = new ArrayList<String>(Arrays.asList(response.split(", ")));
            md.addAttribute("res",listed);
            return "Sucess";
    }
  • Si je comprends votre question correctement, vous devez getTopSongsWS de retour List<Song>, pas List<?>. Or, cela implique la création de cet objet de domaine pour répondre à vos exigences. Il n'est pas clair pourquoi vous appelez votre propre point de terminaison REST à partir d'un autre contrôleur au lieu d'utiliser directement son soutien service. De toute façon la question est trop large, car elle touche à de nombreux concepts, et il semble qu'il vous manque quelques bases, je suggère d'avoir un coup d'oeil à Printemps guides pour voir comment bien la couche de votre application.
InformationsquelleAutor user3626306 | 2014-05-13