无法加载现有的spring应用程序上下文

时间:2015-11-01 03:49:18

标签: java spring jsp applicationcontext

我有一个要求,我要通过从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吗?请让我知道你的想法......坚持这个小小的事情几天。

0 个答案:

没有答案