Tomee 10.0.21 Class cast Exception when undeploying application with @PostConstruct LifeCycle

Rob Leland <[email protected]>
Newsgroups gmane.comp.java.openejb.user
Message-ID <CAG9SN=s9J1txEb4+pXieL=jx0qHSSQcywMnwczzZ0PccVn_zNw@mail.gmail.com>
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
&lt;SERVER_ROOT&gt;/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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.