Hi, I'm running tomcat 9.0.98 with jvm 1.8.0_432 on a Rocky LInux.
I've encountered this problem with Axis Soap library: the server throws an exception, in the application log, a simple AxisFault: ( hostname and class name changed for privacy reasons ) > ERROR - axisfaultexception > AxisFault > faultCode: { http://schemas.xmlsoap.org/soap/envelope/}Server.userException > faultSubcode: > faultString: java.lang.reflect.InvocationTargetException > faultActor: > faultNode: > faultDetail: > {http://xml.apache.org/axis/}hostname:myhostname.com > java.lang.reflect.InvocationTargetException > at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) > at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) > at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) > at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) > at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) > at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) > at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) > at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) > at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) > at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) > at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) > at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) > at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) > at org.apache.axis.client.Call.invokeEngine(Call.java:2784) > at org.apache.axis.client.Call.invoke(Call.java:2767) > at org.apache.axis.client.Call.invoke(Call.java:2443) > at org.apache.axis.client.Call.invoke(Call.java:2366) > at org.apache.axis.client.Call.invoke(Call.java:1812) > at my.app.SoapBindingStub.method(SoapBindingStub.java: ###) > at my... But then I also see the following when I open the catalina.log >22-Apr-2025 10:34:05.537 INFO [http-nio-8080-exec-17] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl$DaysInMonth]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. > java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl$DaysInMonth]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. > at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369) > at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1357) > at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1191) > at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1158) > at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.maximumDayInMonthFor(Unknown Source) > at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.isValid(Unknown Source) > at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.<init>(Unknown Source) > at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.createDateTime(Unknown Source) > at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.<clinit>(Unknown Source) > at org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl.newXMLGregorianCalendar(Unknown Source) > at com.sun.xml.bind.DatatypeConverterImpl._parseDateTime(DatatypeConverterImpl.java:397) > at com.sun.xml.bind.DatatypeConverterImpl.parseDateTime(DatatypeConverterImpl.java:392) > at javax.xml.bind.DatatypeConverter.parseDateTime(DatatypeConverter.java:327) > at my.app.SoapFacade.method(SoapFacade.java: ###) What is strange is that although it says "this web application instance has been stopped already", the web application is still running, end users are still receiving 200 OKs from the web application. We are not sure what causes this because it does not always happen, it is "intermittent". The SoapBindingStub is called from a JSP which is aimed to simulate a call to a Soap service as if it was coming from outside of this app. So the jsp that made the call received this 500 error from the Soap service but this is unusual. Simon