2016-03-30 9 views
0

Ich benutze RestTemplate-Klasse, um alle Benutzer zu bekommen, aber wenn ich Main in Client ausführen, dann treten Fehler auf, ich weiß nicht warum?Spring Resful Client mit RestTemplate

Exception in thread "main" java.lang.ClassCastException: java.util.LinkedHashMap kann nicht auf edu.java.spring.service.user.model.User bei edu.java.spring gegossen werden. service.client.RestClientTest.main (RestClientTest.java:33)

Datei Hier RestClientTest.java

public class RestClientTest { 

    public static void main(String[] args) throws IOException{ 
     List<User> users = getUsers(); 
     for (int i = 0; i < users.size(); i++) { 
      System.out.println("Rest Response" + loadUser(users.get(i).getUserName())); 
     } 

    } 
    public static List<User> getUsers(){ 
     String uri = new String("http://localhost:8080/rest/user/list"); 
     RestTemplate rt = new RestTemplate(); 
     return (List<User>) rt.getForObject(uri,List.class); 
    } 

    public static String loadUser(String username) throws IOException { 
     String url = "http://localhost:8080/rest/user/json/" + username; 

     URL obj = new URL(url); 
     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 
     con.setRequestMethod("GET"); 
     con.setRequestProperty("Accept", "application/json"); 
     InputStream stream = con.getInputStream(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(stream)); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 
     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 

     return response.toString(); 

    } 

Hier UserRestServiceController.java Datei

@Controller 
public class UserRestServiceController { 
    @Autowired 
    public UserDao userDao; 
    @Autowired 
    public View jsonTemplate; 
    @RequestMapping(value = "/rest/user/list", produces = MediaType.APPLICATION_JSON_VALUE,method = RequestMethod.GET) 
    public @ResponseBody List<User> getUsers(){ 
     return userDao.listUsers(); 
    } 
    @RequestMapping(value="/rest/user/json/{username}") 
    public ModelAndView loadUser(@PathVariable("username")String name){ 
     return new ModelAndView(jsonTemplate,"data",userDao.loadUser(name)); 
    } 
+0

Welche Zeile genau ist Zeile 33? – dunni

+0

@dunni, Anweisung in für Funktion. 'System.out.println (" Restreaktion "+ loadUser (users.get (i) .getUserName()));' –

+0

Dann können Sie bitte den Controller posten, der auf "http: // localhost: 8080/Rest/Benutzer/Json/"+ Benutzername? – dunni

Antwort

0

glaube ich, die folgende Methode nicht wie erwartet zurückkehrt:

rt.getForObject(uri,List.class); 

in dieser Frage Werfen Sie einen Blick, wie es Ihnen auch Ihre Fehler beheben helfen könnte. ClassCastException: RestTemplate returning List instead of List

+0

Ich habe einen Fehler mit meinem Weg –

+0

relace 'rt.getForObject (uri, List.class)' von 'rt.getForObject (uri, Benutzer []. Klasse)' –

+0

alles läuft ok, danke mehr :))) –

Verwandte Themen