Error setting up Legacy UI module

Followed all the instructions for setting up open mrs (for development). It started fine. However, as soon as I installed legacy UI module, I started getting following exception while starting jetty server - java.lang.IllegalStateException: java.lang.NullPointerException

at org.eclipse.jetty.servlet.ServletContextHandler$Context.addListener(ServletContextHandler.java:1422)

at org.openmrs.web.WebComponentRegistrar.setServletContext(WebComponentRegistrar.java:49)

at org.springframework.web.context.support.ServletContextAwareProcessor.postProcessBeforeInitialization(ServletContextAwareProcessor.java:108)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)

at org.openmrs.module.ModuleUtil.refreshApplicationContext(ModuleUtil.java:888)

at org.openmrs.module.web.WebModuleUtil.refreshWAC(WebModuleUtil.java:847)

at org.openmrs.web.Listener.performWebStartOfModules(Listener.java:632)

at org.openmrs.web.Listener.performWebStartOfModules(Listener.java:612)

at org.openmrs.web.Listener.startOpenmrs(Listener.java:251)

at org.openmrs.web.WebDaemon$1.run(WebDaemon.java:42)

Caused by: java.lang.NullPointerException

at org.eclipse.jetty.servlet.ListenerHolder.doStart(ListenerHolder.java:81)

at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)

at org.eclipse.jetty.servlet.ServletContextHandler$Context.addListener(ServletContextHandler.java:1418)

... 19 more

Although I was able to access it, after-login-page was displaying following error :-

Registration core module is not loaded.

@ravi991 So I guess you’ll need to install this openmrs-module-registrationapp module as well. If this doesn’t works please share the link which you followed for setting this up.

Hi, @ravi991, please do well to tell us if you found the problem. Someone might benefit from it too. Thank you !

If I’m reading this right, there’s some strange behaviour with Jetty where, when adding a Servlet, it creates a current servlet context where none exists, but doesn’t do so with the Listener, and so this NPE gets thrown when trying to get the current context handler for a null context.

At a guess, this is possibly related to LUI-151, for which the underlying cause is that the Spring ServletContextAware classes are loaded at the wrong point in the process to register new servlets and possibly listeners.

Not very helpful, since we don’t have a solution to that, but that’d be my guess.

I take it this is caused by running against the latest master branch of OpenMRS core?

Yes I pulled out latest from master.