Payara 5 with DMN and de.odysseus.juel

We try to migrate from Payara 4 to Payara Server 5.194 #badassfish (build 327) (Jakarta EE 8)

We use DMN Tabels org/camunda/bpm/dmn/camunda-engine-dmn/7.12.0

org.camunda.bpm.dmn
imports de.odysseus.juel

juel-api-2.2.7.jar
juel-impl-2.2.7.jar
juel-spi-2.2.7.jar

If we put the juel jars into payara-5.194\glassfish\domains\domain1\lib OR deploy it within our .war we get the following Exception and Payara doesn’t start anymore.

[[2020-01-24]T10:22:28.024+0100] [Payara 5.194] [SCHWERWIEGEND] [AS-WEB-CORE-00175] [javax.enterprise.web.core] [tid: _ThreadID=157 _ThreadName=Thread-14] [timeMillis: 1579857748024] [levelValue: 1000] [[ Exception during cleanup after start failed org.apache.catalina.LifecycleException: Manager has not yet been started at org.apache.catalina.session.StandardManager.stop(StandardManager.java:868) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:5940) at com.sun.enterprise.web.WebModule.stop(WebModule.java:648) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5756) at com.sun.enterprise.web.WebModule.start(WebModule.java:619) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:956) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:939) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:684) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1868) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1604) at com.sun.enterprise.web.WebApplication.start(WebApplication.java:107) at org.glassfish.internal.data.EngineRef.start(EngineRef.java:123) [[2020-01-24]T10:22:28.030+0100] [Payara 5.194] [WARNUNG] [] [javax.enterprise.web] [tid: _ThreadID=157 _ThreadName=Thread-14] [timeMillis: 1579857748030] [levelValue: 900] [[ java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NullPointerException java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NullPointerException at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:960) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:939) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:684) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1868) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1604) at com.sun.enterprise.web.WebApplication.start(WebApplication.java:107) at org.glassfish.internal.data.EngineRef.start(EngineRef.java:123) Critical error during deployment: java.lang.NullPointerException at javax.el.CompositeELResolver.add(CompositeELResolver.java:76) at com.sun.faces.el.DemuxCompositeELResolver.addRootELResolver(DemuxCompositeELResolver.java:118) at com.sun.faces.el.ELUtils.addEL3_0_Resolvers(ELUtils.java:312) at com.sun.faces.el.ELUtils.buildFacesResolver(ELUtils.java:234) at com.sun.faces.application.ApplicationAssociate.initializeELResolverChains(ApplicationAssociate.java:467) at com.sun.faces.application.applicationimpl.ExpressionLanguage.performOneTimeELInitialization(ExpressionLanguage.java:184) at com.sun.faces.application.applicationimpl.ExpressionLanguage.getELResolver(ExpressionLanguage.java:120) at com.sun.faces.application.ApplicationImpl.getELResolver(ApplicationImpl.java:213) at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225) at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:5165) at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:683) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5738) at com.sun.enterprise.web.WebModule.start(WebModule.java:619) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:956) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:939) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:684) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1868) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1604) at com.sun.enterprise.web.WebApplication.start(WebApplication.java:107) at org.glassfish.internal.data.EngineRef.start(EngineRef.java:123) Startup of context failed due to previous errors]]

If we exclude the lib in our pom.xml our application is not working:
<dependency>
<groupId>org.camunda.bpm.dmn </groupId>
<artifactId>camunda-engine-dmn</artifactId>
<version>7.12.0</version>
<exclusions>
<exclusion>
<groupId>de.odysseus.juel</groupId>
<artifactId>juel-api</artifactId>
</exclusion>
<exclusion>
<groupId>de.odysseus.juel</groupId>
<artifactId>juel-spi</artifactId>
</exclusion>
<exclusion>
<groupId>de.odysseus.juel</groupId>
<artifactId>juel-impl</artifactId>
</exclusion>
</exclusions>
</dependency>

Caused by: java.lang.Exception: java.lang.NoClassDefFoundError: de/odysseus/el/util/SimpleContext
at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:208)
at org.glassfish.jersey.gf.ejb.internal.EjbComponentInterceptor.inject(EjbComponentInterceptor.java:50)
at sun.reflect.GeneratedMethodAccessor429.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:153)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.init(SystemInterceptorProxy.java:125)
at sun.reflect.GeneratedMethodAccessor368.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:998)
at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:204)
at org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:72)
at org.jboss.weld.module.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
at sun.reflect.GeneratedMethodAccessor327.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:998)
at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:417)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:380)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:2045)
at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:466)
… 110 more
Caused by: java.lang.NoClassDefFoundError: de/odysseus/el/util/SimpleContext
at com.ekato.antos.adapter.dmn.DmnLoader.init(DmnLoader.java:36)
at com.ekato.antos.calc.constraint.component.AbstractConstraint.init(AbstractConstraint.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.ejb.containers.interceptors.BeanCallbackInterceptor.intercept(InterceptorManager.java:1047)
at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:204)
… 133 more
Caused by: java.lang.ClassNotFoundException: de.odysseus.el.util.SimpleContext
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1687)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1528)
… 142 more
]]

How about opening a ticket with Payara to ask them how to configure its module / class loading so a web app can use these jars?
I would also see if this helps https://docs.payara.fish/documentation/payara-server/classloading.html

Thanks for the answer. I’ll check with payara.

with the latest Payara version 5.201 the error does not occur anymore.

Great! Then they must have upgraded to compatible library versions. Thanks for letting everyone know!