我有一个要求,我要通过从JSP文件调用,在Spring Application Context中将一些属性从DB加载到bean。 我有一个Web项目,它有我的JSP文件,我有一个EJB项目,它有我的Spring应用程序上下文。我正在尝试通过调用我的Web项目中的类/ servlet来重新加载属性,这将调用服务层。这两个项目都打包到EAR中并部署到服务器上。 我知道这种方法不是最好的,但是这个实用程序是临时的,只要我们构建一个Admin模块就需要使用它。
我试图通过几种方式加载现有的上下文,但我在其中获得了null值。 1)在JSP文件中:
ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
2)在扩展ApplicationContextAware接口的类中:
@Component
public class ApplicationContextAwareProvider implements ApplicationContextAware {
static ApplicationContext context;
public static ApplicationContext getContext() {
return context;
}
@Override
public void setApplicationContext(ApplicationContext context) {
this.context=context;
}
}
内部JSP:
MyBean myBean = ApplicationContextProvider().getContext().getBean("myBean",MyBean.class);
在两种情况下都获取NullPointerException,因为我的ApplicationContext始终为null。我做错了吗?
是因为ApplicationContext不适用于WebProject吗?请让我知道你的想法......坚持这个小小的事情几天。