2014-12-08 3 views
0

400 요청이 잘못되었지만 이유가 없습니다. 나에게 모든게 잘된 것 같아. 나는 몇 가지 아이디어를 감사하겠습니다 ..스프링 레스트 400 불량 요청

@Component 
public class TicketIdentifierRestClient implements TicketIdentifierService{ 
@Autowired 
private RestClient restClient; 

@Override 
public List<TicketIdentifierDto> createTicketIdentifier(List<TicketIdentifierDto> list) 
     throws ServiceException { 

    RestTemplate restTemplate = this.restClient.getRestTemplate(); 
    String url = this.restClient.createServiceUrl("/ticketIdentifier/"); 

    HttpHeaders headers = this.restClient.getHttpHeaders(); 
    headers.setContentType(MediaType.APPLICATION_JSON); 
    headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)) 
    ; 
    HttpEntity<String> entity = new HttpEntity<String>(headers); 
    List<TicketIdentifierDto> tickets = null; 
// System.out.println("necati"+list.get(0).toString()); 
    try { 
     ParameterizedTypeReference<List<TicketIdentifierDto>> ref = new ParameterizedTypeReference<List<TicketIdentifierDto>>() {}; 
     ResponseEntity<List<TicketIdentifierDto>> response = restTemplate.exchange(URI.create(url), HttpMethod.POST, entity,ref); 
     tickets = response.getBody(); 
     return tickets; 

    } catch (RestClientException e) { 
     e.printStackTrace(); 
     throw new ServiceException("Could not retrieve tickets: " + e.getMessage(), e); 

    } 
} 

와 내가 해요 서버 측 그냥 목록을 얻을 및 서버 측이 좋아 보인다 여기

@RestController 
@RequestMapping(value = "/ticketIdentifier") 
public class TicketIdentifierController { 
private final Logger LOG = Logger.getLogger(TicketController.class); 
@Autowired 
private TicketIdentifierService tiService; 

@RequestMapping(method = RequestMethod.POST, consumes = "application/json", produces = "application/json") 
public @ResponseBody List<TicketIdentifierDto> getTickets(@RequestBody List<TicketIdentifierDto> list) throws ServiceException { 
    System.out.println("did i get it ?"+list.get(0).toString()); 
    //return EntityToDto.convertTicketIdentifiers(tiService.create(list)); 
    return list; 
} 
} 
+0

스프링 세트 로깅을 추적하고 그것이 무엇을 말하고 있는지 확인하십시오. – Qwerky

+0

코드에 중단 점을 추가하면 어떻게됩니까? 맞았나요? – Jeroen

+0

죄송합니다. 중단 점이란 무엇입니까? –

답변

0

을 인쇄하려고합니다.

나는이 코드 몇 줄을 쓰기 : 내가 간단한 클래스 테스트

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Test { 

    String text; 

    int number; 

    public int getNumber() { 
     return number; 
    } 

    public String getText() { 
     return text; 
    } 

    public Test(String text, int number) { 
     super(); 
     this.text = text; 
     this.number = number; 
    } 

    public Test() { 
     super(); 
    } 

} 

그리고 간단한 클라이언트를 작성

public class Application { 

public static void main(String args[]) { 
    RestTemplate restTemplate = new RestTemplate(); 
    List<Test> list = new ArrayList<Test>(); 
    Test request = new Test(); 
    request.number = 1; 
    request.text = "txt1"; 

    Test request2 = new Test(); 
    request2.number = 2; 
    request2.text = "txt2"; 

    list.add(request); 
    list.add(request2); 

    @SuppressWarnings("rawtypes") 
    ResponseEntity<ArrayList> test = restTemplate.postForEntity("http://localhost:8080/postevent", list, ArrayList.class); 
    System.out.println(test.getBody().toString());//show json 
    for(int i =0; i<list.size();i++){ 
     System.out.println("number "+list.get(i).number +" text "+ list.get(i).text); 
    } 

} 

}

서버 측 :

@RestController 
@RequestMapping(value = "/postevent") 
public class PostEvent { 

    @RequestMapping(method = RequestMethod.POST, consumes= "application/json", produces = "application/json") 
    public @ResponseBody List<Test> getTickets(@RequestBody List<Test> list) { 
     for(int i =0; i<list.size();i++){ 
      System.out.println("number "+list.get(i).number +" text "+ list.get(i).text); 
     } 
     return list; 
    } 


} 
+0

정말 운이 없군요. ( –

+0

크롬에 고급 휴식 클라이언트를 사용하여 서비스를 테스트하고 추가 세부 정보를 게시 할 수 있습니다. – DanBoc

+0

나는 보내기를 시도하고 있기 때문에 오류가 발생하는 것을 볼 수 있습니다. arraylist in Dto .. 나는 다른 방법으로 그것을하고 목록을 보내지 않을 때 .. –

관련 문제