2014-11-16 4 views
3

안녕하세요 내 컨트롤러의 봄 부팅에 다음과 같은 구성이 : 내 안드로이드 응용 프로그램에서봄 부팅에 컨트롤러 415 지원되지 않는 미디어 유형

@RequestMapping(value = "/test/setgamesets", method = RequestMethod.POST,consumes="application/json") 
public @ResponseBody Collection<GameSet> setGameSets(@RequestBody ArrayList<GameSet> gmsets) { 
      for(GameSet gs : gmsets){ 
       System.out.println(""+gs.getId()); 
       gamesets.save(gs);   
      } 
      return Lists.newArrayList(gamesets.findAll()); 
     } 

을이 :

@POST("/test/setgamesets") 
public Collection<GameSet> setGameSets(@Body ArrayList<GameSet> gmsets); 

을 그리고 나는 그것을 호출 할 때 내 안드로이드 응용 프로그램에서이 오류가 발생합니다 :

retrofit.RetrofitError: 415 Unsupported Media Type 

내가 어디에서 볼 수 있는지 알려 줄 수 있습니까? 내 잘못 때문에?

관심과 시간에 감사드립니다.

로그 캣 :

11-17 08:43:12.283 8287-8734/com.testing.test D/Retrofit﹕ ---> HTTP POST https://192.168.1.65:8443/test/setgamesets 
11-17 08:43:12.283 8287-8734/com.testing.test D/Retrofit﹕ Authorization: Bearer 1d5deb22-a470-4443-984f-3f877b05e372 
11-17 08:43:12.283 8287-8734/com.testing.test D/Retrofit﹕ Content-Type: application/json 
11-17 08:43:12.283 8287-8734/com.testing.test D/Retrofit﹕ Content-Length: 848 
11-17 08:43:12.283 8287-8734/com.testing.test D/Retrofit﹕ [{"explanation":"I dont know why this is wrong.","title4":"MovieD","question":"Choose one of the following, which is wrong.","title3":"MovieC","title2":"MovieB","title1":"MovieA","id":1,"rate":1.0,"rates":4,"wrong":1},{"explanation":"I dont know why this is wrong.","title4":"MovieD","question":"What is wrong with the follow movies.","title3":"MovieC","title2":"MovieB","title1":"MovieA","id":2,"rate":1.0,"rates":5,"wrong":2},{"explanation":"I dont know why this is wrong.","title4":"MovieD","question":"What is wrong with the follow movies.","title3":"MovieC","title2":"MovieB","title1":"MovieA","id":3,"rate":1.0,"rates":5,"wrong":3},{"explanation":"I dont know why this is wrong.","title4":"MovieD","question":"What is wrong with the follow movies.","title3":"MovieC","title2":"MovieB","title1":"MovieA","id":4,"rate":0.0,"rates":0,"wrong":4}] 
11-17 08:43:12.283 8287-8734/com.testing.test D/Retrofit﹕ ---> END HTTP (848-byte body) 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ <--- HTTP 415 https://192.168.1.65:8443/test/setgamesets (177ms) 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Server: Apache-Coyote/1.1 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ X-Content-Type-Options: nosniff 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ X-XSS-Protection: 1; mode=block 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Pragma: no-cache 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Expires: 0 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Strict-Transport-Security: max-age=31536000 ; includeSubDomains 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ X-Frame-Options: DENY 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Set-Cookie: JSESSIONID=C97BD6EB007A558F69B0DA7A19615917; Path=/; Secure; HttpOnly 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ X-Application-Context: application 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Content-Type: application/schema+json 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Transfer-Encoding: chunked 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ Date: Mon, 17 Nov 2014 06:43:12 GMT 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ { 
    "timestamp" : 1416206592255, 
    "error" : "Unsupported Media Type", 
    "status" : 415, 
    "message" : "" 
    } 
11-17 08:43:12.463 8287-8734/com.testing.test D/Retrofit﹕ <--- END HTTP (112-byte body) 
11-17 08:43:12.463 8287-8734/com.testing.test E/com.testing.test.CallableTask﹕ Error invoking callable in AsyncTask callable: [email protected] 
    retrofit.RetrofitError: 415 Unsupported Media Type 

그리고 여기 내 객체입니다 그것이 작동되도록하는 응용 프로그램/JSON : HTTP 헤더의 Content-Type을 포함해야

@Entity 
public class GameSet { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 
    private String question; 
    private String title1; 
    private String title2; 
    private String title3; 
    private String title4; 
    private int wrong; 
    private String explanation; 
    private int rates; 
    private double rate; 

    public GameSet() { 

    } 

    public GameSet(String question,String title1, String title2, String title3, String title4,String explain, int wrong) { 
     super(); 
     this.question = question; 
     this.title1 = title1; 
     this.title2 = title2; 
     this.title3 = title3; 
     this.title4 = title4; 
     this.explanation = explain; 
     this.wrong = wrong; 
     this.rate = 0; 
     this.rates = 0; 
    } 

    // Getters 
    public String getQuestion() { 
     return question; 
    } 

    public String getTitle1() { 
     return title1; 
    } 

    public String getTitle2() { 
     return title2; 
    } 

    public String getTitle3() { 
     return title3; 
    } 

    public String getTitle4() { 
     return title4; 
    } 

    public String getExplanation() { 
     return explanation; 
    } 

    public int getWrong() { 
     return wrong; 
    } 

    public int getRates() { 
     return rates; 
    } 

    public double getRate() { 
     return rate; 
    } 

    // Setters 

    public String setQuestion(String question) { 
     return this.question = question; 
    } 

    public void setTitle1(String title1) { 
     this.title1 = title1; 
    } 

    public void setTitle2(String title2) { 
     this.title1 = title2; 
    } 

    public void setTitle3(String title3) { 
     this.title1 = title3; 
    } 

    public void setTitle4(String title4) { 
     this.title1 = title4; 
    } 

    public void setExplanation(String explain) { 
     this.explanation = explain; 
    } 

    public void setWrong(int wrong) { 
     this.wrong = wrong; 
    } 

    public void setRate(double rate) { 
     this.rate = rate; 
    } 

    public void setRates(int rate) { 
     this.rate = rate; 
    } 

    public long getId() { 
     return id; 
    } 

    public void setId(long id) { 
     this.id = id; 
    } 
} 
+0

실제로 JSON 변환기가 정의되어 있습니까 (즉, 서버의 클래스 경로에 Jackson이 있습니까)? –

+0

방금 ​​build.gradle의 종속성을 추가했습니다 : 'compile ("com.fasterxml.jackson.core : jackson-databind : 2.2.3") compile ("org.codehaus.jackson : jackson-mapper-asl : 1.9.13 ") compile ("org.codehaus.jackson : jackson-core-asl : 1.9.13 ") ' 하지만 여전히 동일한 오류가 발생합니다. – KostasC

+0

작동하도록하는 또 다른 방법은 무엇입니까 ??? – KostasC

답변

4

클라이언트 응용 프로그램입니다. 그러나 나는 개발자가 안드로이드가 아니기 때문에 그렇게하는 법을 모른다.

+0

답변 해 주셔서 감사합니다. 나는 이것을 시도했지만 동일한 오류가 발생합니다. 나는 아마도 도움이 logcat 추가합니다. – KostasC

관련 문제