Hi all,

If only for the email archives – just a note to say that I have not yet found a 
solution.

Thanks,
Tim

--
Tim Scott
OCLC · Senior Software Engineer / Technical Product Manager

cc: IT file

OCLC COVID-19 resources: 
oc.lc/covid19-service-info<https://oc.lc/covid19-service-info>

From: Scott,Tim
Sent: Tuesday, March 15, 2022 2:45 PM
To: 'Tomcat Users List' <users@tomcat.apache.org>
Subject: RE: Problems deploying new .war application on Linux

Hi Thomas,

> Another approach is to do remote debugging and step into the class with the 
> error 
> (javax.enterprise.inject.se.SeContainerInitializer.findSeContainerInitializer)
I set an Exception breakpoint on IllegalStateException and this opened the 
class for me to set a breakpoint prior to the exception.

When I retried that, I can see that the ServiceLoader is passed:
ParallelWebappClassLoader
  context: sru
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@1623b78d<mailto:java.net.URLClassLoader@1623b78d>

Under loader / resources / classResources, the list includes:
#37 = 
file:/app/dev/tomcat/webapps/sru/WEB-INF/lib/jakarta.enterprise.cdi-api-3.0.0.jar
#51 = file:/app/dev/tomcat/webapps/sru/WEB-INF/lib/cdi-api-2.0.SP1.jar
#52 = file:/app/dev/tomcat/webapps/sru/WEB-INF/lib/jersey-cdi2-se-2.34.jar

When I compare this with a breakpoint prior to that exception, deployed on my 
PC, the breakpoint is never reached.

When I set a breakpoint in the ServiceLoader class/load() method on my PC and 
skip through to each pause I can see that it does not get called to find 
SeContainerInitializer.

I had hoped to compare the ClassLoader passed in to ServiceLoader.load() to 
help pin down the problem. I had not expected an absence of a call to the 
method!

Any further ideas?

Thanks,
Tim

--
Tim Scott
OCLC · Senior Software Engineer / Technical Product Manager

cc: IT file

OCLC COVID-19 resources: 
oc.lc/covid19-service-info<https://oc.lc/covid19-service-info>

Reply via email to