2016-10-17 9 views
0

以下は私の残りの部分テンプレートの設定です:できない

<beans:bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> 
    <beans:constructor-arg> 
     <beans:bean class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory"> 
      <beans:property name="readTimeout" value="600000" /> 
      <beans:property name="connectTimeout" value="600000" /> 
     </beans:bean> 
    </beans:constructor-arg> 
    <beans:property name="messageConverters"> 
     <beans:list> 
      <beans:bean id="byteArrayMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"> 
      </beans:bean> 
      <beans:bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
       <beans:property name="objectMapper"> 
        <beans:ref bean="jacksonObjectMapper" /> 
       </beans:property> 
       <beans:property name="supportedMediaTypes"> 
        <beans:list> 
         <beans:value>text/plain</beans:value> 
         <beans:value>application/json</beans:value> 
        </beans:list> 
       </beans:property> 
      </beans:bean> 


     </beans:list> 
    </beans:property> 
</beans:bean> 

私はautowireとクラスでテンプレートにアクセスしようとしたとき、私はNPEを取得しています:

@Service 
public class GitService { 

    @Autowired 
    RestTemplate restTemplate; 

    public void getTot(String url) { 

     List<ResponseObject> eg = (List<ResponseObject>) restTemplate.getForObject(url,ResponseObject.class); 
    } 
} 

例外:

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/github] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause 
java.lang.NullPointerException 
    at com.assignment.github.service.GitService.getTot(GitService.java:25) 

ここで何が間違っているのか教えてください。

+0

'@ Autowired'はnullにできません。コンポーネントスキャンまたはアノテーションベースの設定を使用している場合、アプリケーションの起動に失敗します。 'GitService'のインスタンスを自分で作成している場合は、' null'しか指定できません。私。 '新しいGitService()'を実行します。 Springはそのインスタンスについて知らないので、依存関係を注入することはできません。 –

答えて

0

使用して、同じコンフィギュレーションファイルに

<context:component-scan base-package="<Your_base_package"/> 

を持っていない場合は、これらのタグ

<context:annotation-config/> 

を追加してください。

+3

なぜ 'が必要でしょうか?これは、設定されたアノテーション駆動のWebのもので、オートワイヤリングとは何も関係ありません。 –

+0

これは私がこれを行うときにこれまで私が習ったことです。次回は最初の@M.Deinumだけを使用します。 –

+1

''を既に意味する ' 'が既にある場合は、その必要はありません。 –