2017-09-12 7 views
0

私はこのコントローラHttpClientErrorException:404ヌル

@GetMapping(value = "/thanks") 
public ModelAndView confirmAccount(
     @RequestParam String token, 
     UriComponentsBuilder uriComponentsBuilder 
) { 
    RestTemplate restTemplate = new RestTemplate(); 
    HttpEntity<Object> entity = new HttpEntity<>(new HttpHeaders()); 

    UriComponents uriComponents 
      = uriComponentsBuilder.path("/register/token/{token}").buildAndExpand(token); 

    ResponseEntity<Boolean> response = restTemplate 
      .exchange(uriComponents.toUri(), 
         HttpMethod.PUT, 
         entity, 
         Boolean.class); 

    return response.getStatusCode().toString().equals("200") 
      ? new ModelAndView("redirect:/signIn") : new ModelAndView("tokenNotFound"); 
} 

に、私は、このアドレスを呼んでください、私はRestTemplateを使用して、コントローラのアドレスを呼び出そうとし、結果として、私はOKか、NOT FOUND状態 を取得したいですコントローラ。その結果、

@RequestMapping(value = "/register/token/{token}", method = RequestMethod.PUT) 
public 
HttpEntity<Boolean> confirmAccount(
     @PathVariable String token 
) { 
    Optional<User> userOptional = userService.findByActivationToken(token); 

    if(userOptional.isPresent()) { 
     User user = userOptional.get(); 

     user.setActivationToken(null); 
     user.setEnabled(true); 

     userService.saveUser(user); 
    } else { 
     return ResponseEntity.notFound().build(); 
    } 

    return ResponseEntity.ok(true); 
} 

、彼女は

org.springframework.web.client.HttpClientErrorException: 404 null 
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:63) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE] 
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE] 
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE] 
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:628) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE] 
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:549) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE] 
at com.service.app.controller.RegisterController.confirmAccount(RegisterController.java:40) ~[classes/:na] 

コンソールで私を投げるのはなぜRestTemplateは、結果として、ステータス404を返すように望んでいませんか? ここにコードを入力

+0

を投げますか? –

+0

申し訳ありません。私はコントローラ全体を '/ register'にマップします。ここで私は住所を修正しました。 –

+0

"/ thanks"または "/ register/token"を呼び出すときに、HttpClientErrorException例外が発生するのはいつですか?より多くのstacktraceは役に立ちます – saurabh

答えて