2017-05-30 147 views
0

以下のように、レスポンスエンティティをスプリングレステンプレートで取得しようとしました。適切なHttpMessageConverterがレスポンスタイプとコンテンツタイプで見つかりませんでした

ResourceOwnerPasswordResourceDetails resource = new ResourceOwnerPasswordResourceDetails(); 

     resource.setAccessTokenUri("https://.../oauth2/token"); 
     resource.setUsername("u"); 
     resource.setPassword("p"); 
     resource.setClientSecret(".....s"); 
     resource.setClientId("....i"); 
     resource.setGrantType("password"); 
     List<String> scopes = new ArrayList<String>(2); 
     scopes.add("write"); 
     scopes.add("read"); 
     resource.setScope(scopes); 
     OAuth2RestTemplate oAuthRestTemplate = new OAuth2RestTemplate(resource); 

    try{ 
     SSLUtil.turnOffSslChecking(); 
     ResponseEntity<String> result = oAuthRestTemplate.getForEntity("https:......." + "/api/version", String.class); 
     System.out.println(result); 
      } catch (RestClientException e) {   
      e.printStackTrace(); 
     } 

私はまだthis post.But同じエラーのようにアプリケーション/ JSONなどのメディアタイプを設定してみました:私は

Caused by: org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [interface org.springframework.security.oauth2.common.OAuth2AccessToken] and content type [application/json;charset=ISO-8859-1] 

コード、以下のエラーを取得しています。

全トレース:

Exception in thread "main" error="access_denied", error_description="Error requesting access token." 
    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:121) 
    at org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider.obtainAccessToken(ResourceOwnerPasswordAccessTokenProvider.java:47) 
    at org.springframework.security.oauth2.client.token.AccessTokenProviderChain.obtainNewAccessTokenInternal(AccessTokenProviderChain.java:142) 
    at org.springframework.security.oauth2.client.token.AccessTokenProviderChain.obtainAccessToken(AccessTokenProviderChain.java:118) 
    at org.springframework.security.oauth2.client.OAuth2RestTemplate.acquireAccessToken(OAuth2RestTemplate.java:216) 
    at org.springframework.security.oauth2.client.OAuth2RestTemplate.getAccessToken(OAuth2RestTemplate.java:168) 
    at org.springframework.security.oauth2.client.OAuth2RestTemplate.createRequest(OAuth2RestTemplate.java:89) 
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:479) 
    at org.springframework.security.oauth2.client.OAuth2RestTemplate.doExecute(OAuth2RestTemplate.java:123) 
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:446) 
    at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:236) 
    at com.ClientTemplate.main(ClientTemplate.java:56) 
Caused by: org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [interface org.springframework.security.oauth2.common.OAuth2AccessToken] and content type [application/json;charset=ISO-8859-1] 
    at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:107) 
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:491) 
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:454) 
    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:113) 
    ... 11 more 

答えて

0

あなたはMappingJackson2HttpMessageConverterを追加し、ヘッダにapplication/jsonするコンテンツタイプを追加する必要があります。 here

+0

私はspring3を使用しています。これを試してみました.. List >コンバーター= oAuthRestTemplate.getMessageConverters(); for(HttpMessageConverter コンバータ:コンバーター){ if(converter instanceof MappingJackson2HttpMessageConverter){...} ..'しかし、動作しません。あなたはspring3のresttemplateを取得するためのリンクがありますか – NaaN

関連する問題