Невозможно развернуть войну против кота со слушателем - PullRequest
0 голосов
/ 17 июня 2020

У меня очень простое приложение hello world, которое не развертывается в моей среде tomcat (tomcat 9, 8, 7), и я получаю странную ошибку.

Вот мой ContextListener

package edu;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class CsacContextListener implements ServletContextListener {    
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("ServletContextListener destroyed");
    }
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        System.out.println("ServletContextListener started");
    }
}

Мой Jsp - это просто текст «привет, мир». Содержимое моего военного файла выглядит следующим образом:

$ unzip -l HelloWorld.war
Archive:  HelloWorld.war
  Length      Date    Time    Name
---------  ---------- -----   ----
      380  2020-06-17 12:36   index.xhtml
        0  2020-06-17 12:58   META-INF/
       91  2020-06-17 12:36   META-INF/context.xml
      101  2020-06-17 12:58   META-INF/MANIFEST.MF
        0  2020-06-17 12:36   WEB-INF/
        0  2020-06-17 12:36   WEB-INF/classes/
        0  2020-06-17 12:57   WEB-INF/classes/edu/
      760  2020-06-17 12:57   WEB-INF/classes/edu/CsacContextListener.class
        0  2020-06-17 12:36   WEB-INF/lib/
  3578976  2020-06-17 12:36   WEB-INF/lib/javax.faces.jar
     1086  2020-06-17 12:52   WEB-INF/web.xml
---------                     -------

Когда я пытаюсь развернуть это, я получаю это странное исключение tomcat.

17-Jun-2020 13:26:13.032 SEVERE [http-nio-8080-exec-13] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [edu.CsacContextListener]
    java.lang.RuntimeException: 
        at edu.CsacContextListener.<init>(CsacContextListener.java:1)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4602)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5139)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1642)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
        at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
        at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
        at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1593)
        at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:294)
        at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:212)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:211)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:666)
        at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
        at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:53)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:844)
17-Jun-2020 13:26:13.032 SEVERE [http-nio-8080-exec-13] org.apache.catalina.core.StandardContext.listenerStart Skipped installing application listeners due to previous error(s)

Я пробовал tomcat 7,8,9 и использовал Java 8 или java 9. Та же проблема. Я бы понял получение ClassNotFoundException, но это исключение RuntimeException, указывающее на строку 1. Конечно, при удалении @ WebListener он развертывается нормально.

Не понимаю. Что мне не хватает?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...