Configuring JavaMelody on Apache Tomcat 10.x

698 views Asked by At

I am trying to configure JavaMelody (jrobin-1.5.9.jar & javamelody-core-1.91.0.jar) on Apache Tomcat 10.0.21 instead of in the Java application. Similar configuration is working till Apache Tomcat 9.x

Below is the JavaMelody configuration from web.xml from /home/app1/apache-tomcat-10.0.21/conf/web.xml

<filter>
        <filter-name>javamelody</filter-name>
        <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
        <async-supported>true</async-supported>
</filter>
<filter-mapping>
        <filter-name>javamelody</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
        <listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>
<login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Monitoring</realm-name>
</login-config>
<security-role>
        <role-name>monitoring</role-name>
</security-role>
<security-constraint>
        <web-resource-collection>
                <web-resource-name>Monitoring</web-resource-name>
                <url-pattern>/monitoring</url-pattern>
        </web-resource-collection>
        <auth-constraint>
                <role-name>monitoring</role-name>
        </auth-constraint>
</security-constraint>

When I start the Tomcat I am getting below errors in the logs/catalina.out

SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors

And below logs are printed in the logs/localhost.log

SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Skipped installing application listeners due to previous error(s)
SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [net.bull.javamelody.SessionListener]
        java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener
                at java.lang.ClassLoader.defineClass1(Native Method)
                at java.lang.ClassLoader.defineClass(ClassLoader.java:757)
                at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
                at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
                at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
                at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
                at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
                at java.security.AccessController.doPrivileged(Native Method)
        .
        .
        .
        .
        .
                at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
        Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpSessionListener
                at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
                ... 59 more
SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Skipped installing application listeners due to previous error(s)

Java version I am using is below.

openjdk version "1.8.0_252"
OpenJDK Runtime Environment (Zulu 8.46.0.52-SA-linux64)

Is there any compatibility issues with the version of Java and/or Apache Tomcat with the jrobin-1.5.9.jar & javamelody-core-1.91.0.jar

Can someone assist?

1

There are 1 answers

0
evernat On

javamelody migration to jakartaee has not started yet. It should start soon.

Meanwhile you can add a jakartaConverter in your conf/Catalina/localhost/yourwebapp.xml to make it compatible in Tomcat 10 at runtime :

<Context>
   ...
   <Loader jakartaConverter="TOMCAT" />
</Context>

Related Questions in JAKARTA-MIGRATION