You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Ivano Luberti <lu...@archicoop.it.INVALID> on 2023/09/07 06:58:22 UTC

java.lang.ClassNotFoundException for listener class

Hello all.

I have developed a web application using Eclipse as an IDE and test 
environment and it runs as expected.

Then I have built a war file and deployed it under another Tomcat instance.

In both case tomcat version is 8.5

Under this last instance the application can't start and in the log 
files I find:

> 07-Sep-2023 07:48:18.173 SEVERE [http-nio-8080-exec-129] 
> org.apache.catalina.core.StandardContext.listenerStart Error 
> configuring application listener of class 
> [it.archimede.met.obliterazione.zse.servlet.CreaConnessione]
>     java.lang.ClassNotFoundException: 
> it.archimede.met.obliterazione.zse.servlet.CreaConnessione
>         at 
> org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
>         at 
> org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
>         at 
> org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:545)
>         at 
> org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:526)
>         at 
> org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
>         at 
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4613)
>         at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5155)
>         at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>         at 
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:614)
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:486)
>         at 
> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1634)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:607)
>         at 
> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:286)
>         at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>         at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>         at 
> org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1562)
>         at 
> org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:990)
>         at 
> org.apache.catalina.manager.HTMLManagerServlet.deployInternal(HTMLManagerServlet.java:320)
>         at 
> org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:209)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
>         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:52)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>         at 
> org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
>         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:199)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
>         at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:668)
>         at 
> org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
>         at 
> org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:52)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
>         at 
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
>         at 
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
>         at 
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
>         at 
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
>         at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1626)
>         at 
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
>         at 
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>         at java.lang.Thread.run(Thread.java:748)
I have compared the war file I have built and doesn't work with the 
version deployed under Eclipse and they are identical.

In web.xml, of course I have in both cases:

     <listener>
<listener-class>it.archimede.met.obliterazione.zse.servlet.CreaConnessione</listener-class>
     </listener>

I have to mention that this class files is not deployed in 
WEB-INF/classes but in WEB-INF/services, since is part of a web service 
developed using Axis2.

Axis2 configuration is the same in both environment.

I can understand it is a classloading issue but I cannot understand why 
two tomcat instances behave differently with the same application.

TIA



-- 

Archimede Informatica tratta i dati personali in conformità a quanto
stabilito dal Regolamento UE n. 2016/679 (GDPR) e dal D. Lgs. 30 giugno 
2003 n. 196
per come modificato dal D.Lgs. 10 agosto 2018 n. 101.
Informativa completa 
<http://www.archicoop.it/fileadmin/pdf/InformativaTrattamentoDatiPersonali.pdf>

dott. Ivano Mario Luberti

Archimede Informatica società cooperativa a r. l.
Via Gereschi 36, 56127 Pisa

tel.: +39 050/580959 | fax: +39 050/8932061

web: www.archicoop.it
linkedin: www.linkedin.com/in/ivanoluberti
facebook: www.facebook.com/archimedeinformaticapisa/