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));
}
Welche Zeile genau ist Zeile 33? – dunni
@dunni, Anweisung in für Funktion. 'System.out.println (" Restreaktion "+ loadUser (users.get (i) .getUserName()));' –
Dann können Sie bitte den Controller posten, der auf "http: // localhost: 8080/Rest/Benutzer/Json/"+ Benutzername? – dunni