2013-08-13 16 views
25

に私はNullPointerExceptionを取得していますことはできませんここでスタックトレースです:春はあなたのPagePopulationInterceptorを管理されていないためだがAutowireサービスがHandlerInterceptorAdapter

java.lang.NullPointerException 
    com.mycompany.util.PagePopulationInterceptor.postHandle(PagePopulationInterceptor.java:22) 
    org.springframework.web.servlet.HandlerExecutionChain.applyPostHandle(HandlerExecutionChain.java:149) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:934) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
+0

スタックトレースを投稿できますか? –

答えて

71

インスタンス。あなたは以下のコードでそれにそれが@Bean方法から生成されていますので、このように

@Bean 
public PagePopulationInterceptor pagePopulationInterceptor() { 
    return new PagePopulationInterceptor(); 
} 

public @Override void addInterceptors(InterceptorRegistry registry) { 
    registry.addInterceptor(pagePopulationInterceptor()); 
} 

に、春はPagePopulationInterceptorインスタンスのライフサイクルを管理することを

public @Override void addInterceptors(InterceptorRegistry registry) { 
    registry.addInterceptor(new PagePopulationInterceptor()); 
} 

変更を自分で作成しています。 Springはそれを@Autowiredターゲットでスキャンして注入します。

これは、PagePopulationInterceptorがパッケージ内にあり、@ComponentScan edであることを前提としています。

+1

@dtrunkよろしくお願いします。 '@ Autowired'フィールドがヌルのときはいつでも、あなたのコンテキストで欠落しているbeanをチェックしてください。 –

+1

Btw:コンポーネントスキャンと組み合わせて '@ Component'を使用する方が' @ Bean'アノテートメソッドを作成するよりもはるかに優れています;-) – dtrunk

+0

@dtrunkあなたが言ったことをするためにこの例で何を変更する必要がありますか? –

関連する問題