Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Spring MVC-How to get WebApplicationContext in Spring without ContextLoaderListener?

 
selva raja
Ranch Hand
Posts: 69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dear Guys,

To my understanding, in order to get a bean, we should get the application context and call getBean. In the servlet layer it is easy, all we need to do is

In web.xml file while configuration ContextLoaderListener its worki ng fine. But I have removed ContextLoaderListener in web.xml getting null pointer in exception (userSessionCache = (UserSessionCache) webAppCtxt.getBean(“User”); in this line.)

cache.xml:

<bean id="userSessionCache" class="com.xxx.cache.UserSessionCache"/>
// test the spring framework

sessionListener.java

WebApplicationContext webAppCtxt = WebApplicationContextUtils.getWebApplicationContext(event.getSession()
.getServletContext());
private UserSessionCache userSessionCache;
userSessionCache = (UserSessionCache) webAppCtxt.getBean(“User”); I am getting null pointer exception in this line.
ERROR [SessionListener] Exception Occured in Session Listener
java.lang.NullPointerException
at com.xxx.handler.SessionListener.sessionDestroyed(SessionListener.java:61)


Is it possible to get the “WebApplicationContext” in spring mvc without ContextLoaderListener?

Thanks,
SR
 
Mark Spritzler
ranger
Sheriff
Posts: 17278
6
IntelliJ IDE Mac Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
First if I was using Spring MVC, I would just have the beans auto-injected into the Controller classes. I wouldn't want to call WebApplicationContextUtils.getWebApplicationContext(getServletContext());

I can do




Much simpler, but you will need the ContextLoaderListener no matter what to create the ApplicationContext for your middle tier, when the web app gets deployed. Without it you will not get your Services etc created and put into an ApplicationContext that is placed in the ServletContext. Without any ApplicationContext in the ServletContext that line WebApplicationContextUtils.getWebApplicationContext(getServletContext()); will just return NULL.

Mark
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic