You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Noticed that the springboot has been added as a required dependency for this tomcat session manager 2.2 version with the following dependency mentioned as a provided dependency without which the session manager refuses to start up. This is causing a more tight coupling especially for existing applications that are using their own versions of spring boot than the version this 2.2 version is expecting.
Moreover this dependency is not called out in the main documentation for the clustering set up.
Can this dependency be made more of a soft dependency i.e. a nice to have (where if some one choose to use it then they can include it vs others can choose to ignore it) ?
Pom dependency - <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.4.1</version> <scope>provided</scope> </dependency>
Error in the logs -
2023-10-13 13:03:01.435 ERROR 70203 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalArgumentException: Unresolvable class definition for class [com.hazelcast.session.HazelcastSessionManagerConfiguration$HazelcastConfigAvailableCondition]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:331) ~[spring-core-5.3.1.jar:5.3.1]
at org.springframework.context.annotation.ConditionEvaluator.getCondition(ConditionEvaluator.java:124) ~[spring-context-5.3.1.jar:5.3.1]
at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:96) ~[spring-context-5.3.1.jar:5.3.1]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:193) ~[spring-c
ontext-5.3.1.jar:5.3.1]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:153) ~[
spring-context-5.3.1.jar:5.3.1]
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.1.
jar:5.3.1]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:348) ~[spring-context-5.3.1.jar:5
.3.1]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:252) ~[spring-context-5.3.1.
jar:5.3.1]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:285) ~[spring-cont
ext-5.3.1.jar:5.3.1]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:99) ~[spring-context-5.3.1.ja
r:5.3.1]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:751) ~[spring-context-5.3.1.jar:5.3.1]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:569) ~[spring-context-5.3.1.jar:5.3.1]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[spring-boot-2.4.0.jar:2.4.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767) ~[spring-boot-2.4.0.jar:2.4.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) ~[spring-boot-2.4.0.jar:2.4.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426) ~[spring-boot-2.4.0.jar:2.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) ~[spring-boot-2.4.0.jar:2.4.0]
at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:173) ~[spring-boot-2.4.0.jar:2.4.0]
at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:153) ~[spring-boot-2.4.0.jar:2.4.
0]
at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:95) ~[spring-boot-2.4.0.jar:2.4.0]
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:174) ~[spring-web-5.3.1.jar:5.3.1]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4904) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:661) ~[catalina.jar:9.0.81]
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1184) ~[catalina.jar:9.0.81]
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1932) ~[catalina.jar:9.0.81]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-util.jar:9.0.81]
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) ~[na:na]
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1094) ~[catalina.jar:9.0.81]
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476) ~[catalina.jar:9.0.81]
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1617) ~[catalina.jar:9.0.81]
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:794) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) ~[catalina.jar:9.0.81]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-util.jar:9.0.81]
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:248) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) ~[catalina.jar:9.0.81]
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921) ~[catalina.jar:9.0.81]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) ~[catalina.jar:9.0.81]
at org.apache.catalina.startup.Catalina.start(Catalina.java:772) ~[catalina.jar:9.0.81]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) ~[bootstrap.jar:9.0.81]
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478) ~[bootstrap.jar:9.0.81]
Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/autoconfigure/condition/SpringBootCondition
at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[na:na]
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[na:na]
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524) ~[na:na]
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427) ~[na:na]
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) ~[na:na]
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[na:na]
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/java.lang.Class.forName(Class.java:467) ~[na:na]
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1313) ~[catalina.jar:9.0.81]
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1141) ~[catalina.jar:9.0.81]
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/java.lang.Class.forName(Class.java:467) ~[na:na]
at org.springframework.util.ClassUtils.forName(ClassUtils.java:284) ~[spring-core-5.3.1.jar:5.3.1]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:324) ~[spring-core-5.3.1.jar:5.3.1]
... 60 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.condition.SpringBootCondition
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[na:na]
... 78 common frames omitted
The text was updated successfully, but these errors were encountered:
Noticed that the springboot has been added as a required dependency for this tomcat session manager 2.2 version with the following dependency mentioned as a provided dependency without which the session manager refuses to start up. This is causing a more tight coupling especially for existing applications that are using their own versions of spring boot than the version this 2.2 version is expecting.
Moreover this dependency is not called out in the main documentation for the clustering set up.
Can this dependency be made more of a soft dependency i.e. a nice to have (where if some one choose to use it then they can include it vs others can choose to ignore it) ?
Pom dependency -
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.4.1</version> <scope>provided</scope> </dependency>
Error in the logs -
The text was updated successfully, but these errors were encountered: