Summary: I am seeing the Class cast Exception shown at the bottom when stopping the container. The tomee profile I downloaded seems to have the required EE jars under tomee/lib.
I tried the code on GlassFish 6.2.5 and did not see this error. Note: The code I am working with is 2 classes, see below, is from a Book on Jakarta Persistence. There may be come issues with the code itself since the Servlet is not Displayed , but that may also be due to my setup I am still checking. The WAR WEB-INF/lib folder only has Derby Jars nothing else. The Repo with this code is at: https://github.com/free2create/pro-jakarta-persistence-jakarta-ee10 It uses maven to build and after building you would want to deploy: examples/Chapter3/03-slsbLifecycleExample/servlet/target/ WAR file. ______________ LoggerBean.java: ______________ package examples.stateless; import jakarta.annotation.PostConstruct; import jakarta.ejb.Stateless; import java.util.logging.Logger; @Stateless public class LoggerBean { private Logger logger; @PostConstruct private void init() { logger = Logger.getLogger("notification"); } public void logMessage(String message) { logger.info(message); } } _____________ LoggerServlet.java _____________ package examples.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.naming.InitialContext; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.annotation.WebServlet; import jakarta.ejb.EJB; import examples.stateless.LoggerBean; @WebServlet(name="LoggerServlet", urlPatterns="/LoggerServlet") public class LoggerServlet extends HttpServlet { private final String TITLE = "Chapter 3: Stateless Session Bean Lifecycle Example"; private final String DESCRIPTION = "This example demonstrates the basic use of lifecycle callbacks to initialize a Stateless Session Bean. </br>" + "Enter a and click 'Go'. This will trigger a servlet client that talks " + "to a Stateless Session Bean to log a message."; @EJB LoggerBean logger; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); printHtmlHeader(out); // if there was a message submitted, log it String message = request.getParameter("message"); if (message != null) { // use the logger bean to log a message logger.logMessage(message); out.println("Message '" + message + "' sent to logger. " + "See the output on the server console or the log file at <SERVER_ROOT>/glassfish/domains/domain1/logs/server.log."); } printHtmlFooter(out); } private void printHtmlHeader(PrintWriter out) throws IOException { //Code Deleted } private void printHtmlFooter(PrintWriter out) throws IOException { //Code Deleted } } __________________________________________ Exception __________________________________________ 02-Sep-2022 16:38:17.996 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches Failed to clear soft references from ObjectStreamClass$Caches for web application [ch3-03-slsb-servlet-1.0.0] java.lang.ClassCastException: class java.io.ObjectStreamClass$Caches$1 cannot be cast to class java.util.Map (java.io.ObjectStreamClass$Caches$1 and java.util.Map are in module java.base of loader 'bootstrap') at org.apache.catalina.loader.WebappClassLoaderBase.clearCache(WebappClassLoaderBase.java:2374) at org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches(WebappClassLoaderBase.java:2349) at org.apache.catalina.loader.WebappClassLoaderBase.clearReferences(WebappClassLoaderBase.java:1711) at org.apache.catalina.loader.WebappClassLoaderBase.stop(WebappClassLoaderBase.java:1639) at org.apache.tomee.catalina.TomEEWebappClassLoader.internalStop(TomEEWebappClassLoader.java:306) at org.apache.tomee.catalina.TomcatWebAppBuilder.afterStop(TomcatWebAppBuilder.java:2149) at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:127) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:265) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1412) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1401) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.stopInternal(ContainerBase.java:986) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1412) at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1401) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.stopInternal(ContainerBase.java:986) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) at org.apache.catalina.core.StandardService.stopInternal(StandardService.java:497) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) at org.apache.catalina.core.StandardServer.stopInternal(StandardServer.java:979) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) at org.apache.catalina.startup.Catalina.stop(Catalina.java:872) at org.apache.catalina.startup.Catalina.start(Catalina.java:834) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
