2013-07-21 33 views
0

我是tiro到Spring,並且想要在我的servlet中使用帶有註釋@Resource的汽車線。 在service layerdao layer,這個註釋效果很好,當我在Servlet使用它,除了談到:我在徘徊爲什麼@Resource無法在HttpServlet中工作?

com.fruit.action.merchant.MerAdd.service name='merAddService' is an unknown @Resource 

正如你看到的,MerAdd是一個servlet擴展自己BaseServlet延伸HttpServletservice是一個對象的MerAddServie,在MerAdd的servlet:

@Resource(name="merAddService") 
private MerAddBusiness service; 
public MerAddBusiness getService() { 
    return service; 
} 

public void setService(MerAddBusiness service) { 
    this.service = service; 
} 

有什麼我應該做的來解決這個問題,我mybe誤解@Resource,你能幫助我,塔nks ahead〜

回答

0

不幸的是,你不能在Servlet中使用@Resource annotion自動裝配。
同樣的問題在今年春季論壇討論link

問題: - 「這裏的問題是,一些J2EE組件具有Web容器注入到他們的依賴這意味着@Resource()註釋贏得了」。 t工作 - 容器將嘗試將這些依賴關係解析爲JNDI(或其他地方)。「

可能的解決方法: - 正如你可以在你的servlet使用@Autowired註解
所以你可以委託請求處理的專用豆將有@Resource豆在它自動連接,即讓你的servlet是隻是一個符合servlet容器支持的API的入口點。因此,您可以根據需要通過spring配置實際的業務邏輯持有者Bean,並從IoC容器中檢索它並從servlet中調用必要的方法