I was wong, the deployed context under eclipse and under tomcat autonomous instance were not identical at all.

Form some reason when eclipse deploys the web application copy the class files under WEB-INF/services/<servicename>  under WEB-INF/classes, so the tomcat class loading finds classes were expected



------------------

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/

Reply via email to