2016-03-30 9 views
0

RestTemplateクラスを使用してすべてのユーザーを取得していますが、クライアントでMainを実行するとエラーが発生するのはなぜですか?スレッド "メイン" とjava.lang.ClassCastExceptionでRestTemplateを使用したSpring Resfulクライアント

例外: java.util.LinkedHashMapは edu.java.springで edu.java.spring.service.user.model.Userにキャストすることはできません。 service.client.RestClientTest.main(RestClientTest.java:33)

ここではUserRestServiceController.java

0ファイルここ 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(); 

    } 

を提出します

@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

どの行が正確に33行目ですか? – dunni

+0

@dunni、for for function。 –

+0

次に、http:// localhost:8080 /にマップされているコントローラーをポストしてください。 "System.out.println(" Restレスポンス "+ loadUser(users.get(i).getUserName())) rest/user/json/"+ username? – dunni

答えて

0

私はあなたが期待するよう、以下の方法が戻っていないと考えられる。それはまた、あなたのエラーを修正するのに役立つ可能性があるとして

rt.getForObject(uri,List.class); 

はこの質問を見てみましょう。 ClassCastException: RestTemplate returning List instead of List

+0

私は自分の方法でエラーを修正しました –

+0

'rt.getForObject(uri、List.class)'によってrelace 'rt.getForObject(uri、List.class)' –

+0

はすべて実行されました。ありがとう、ありがとうございました:)) –

関連する問題