Вход в систему Payara / Glassfish: NoClassDefFound javax / servlet / ServletContainerInitializer - PullRequest
0 голосов
/ 15 февраля 2019

Когда я помещаю jar logback-core и logback-classic в $PAYARA_DIR/glassfish/domains/$DOMAIN_NAME/lib/ext и пытаюсь получить доступ к панели администратора, я получаю следующую ошибку в консоли:

org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: javax/servlet/ServletContainerInitializer
        < snip >
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContainerInitializer
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
        at com.sun.enterprise.v3.server.APIClassLoaderServiceImpl$APIClassLoader.loadClass(APIClassLoaderServiceImpl.java:281)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
        at com.sun.enterprise.loader.CurrentBeforeParentClassLoader.loadClass(CurrentBeforeParentClassLoader.java:83)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1604)
        at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1505)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:370)
        at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
        at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
        at org.glassfish.web.loader.ServletContainerInitializerUtil.getInterestList(ServletContainerInitializerUtil.java:190)
        at org.apache.catalina.core.StandardContext.callServletContainerInitializers(StandardContext.java:5794)
        at com.sun.enterprise.web.WebModule.callServletContainerInitializers(WebModule.java:737)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5722)
        ... 13 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContainerInitializer
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 41 more

Я полагаю, что это происходит, когдаloading ch.qos.logback.classic.servlet.LogbackServletContainerInitializer, который реализует ServletContainerInitializer.

. Странно то, что это происходит во время org.apache.catalina.core.StandardContext.callServletContainerInitializers, что указывает на то, что ServletContainerInitializer действительно должен быть загружаемым.

Что я могу сделать, чтобы решить эту проблему?

...