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?
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 :