Я использую Spring framework (2.5.4) в своем приложении с загрузкой временного плетения, и все работает отлично везде (в весенних бобах, в объектах, отличных от Spring), за исключением случаев, когда я пытаюсь использовать поле autwire в сервлет аннотированный, как @Configurable, то я получаю хороший NullPointerException ...Spring @Autowired in Servlet
@Configurable(dependencyCheck=true)
public class CaptchaServlet extends HttpServlet{
@Autowired
private CaptchaServiceIface captchaService;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
// ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext());
// captchaService = (CaptchaServiceIface) ctx.getBean("captchaService");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Captcha c = captchaService.getCatpcha();
req.getSession().setAttribute("captchaAnswer", c.getAnswer());
resp.setContentType("image/png");
ImageIO.write(c.getImage(), "png", resp.getOutputStream());
}
}
<context:load-time-weaver/>
<context:spring-configured/>
<context:component-scan base-package="cz.flexibla2" />
Любые предложения о том, что я неправильно делаю?
Спасибо.
Я не уверен, но может случиться так, что класс сервлета загружается контейнером сервлетов, а не весенним контейнером. –
@ abhin4v: Идея, связанная с загрузкой во времени, состоит в том, чтобы позволить чему-либо загружать класс, а не только весной. – skaffman
@malejpavouk, каково окончательное решение такого поведения, можете ли вы поделиться им? –