spring-cloud / spring-cloud/spring-cloud-netflix

Eureka Server Packaged in War not running in tomcat.

Open
#4,526 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

waiting-for-triage
Dominant language
Java
Stars
5k
Forks
2.5k
Avg merge
1d 2h
Merged PRs (30d)
10

Description

Describe the bug
A Spring Boot application as Eureka Server, packaged in a war doesn't work on tomcat (11).

Error log:

2026-01-20T14:01:23.428Z  WARN 84577 --- [server] [alina-utility-2] WarDeploymentApplicationContextFactory$1 : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration.replicationClientAdditionalFilters
2026-01-20T14:01:23.434Z  INFO 84577 --- [server] [alina-utility-2] .s.b.a.l.ConditionEvaluationReportLogger : 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2026-01-20T14:01:23.442Z ERROR 84577 --- [server] [alina-utility-2] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration.replicationClientAdditionalFilters
	at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:60) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:100) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:196) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:124) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:458) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:310) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:794) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:602) ~[spring-context-7.0.2.jar:7.0.2]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) ~[spring-boot-4.0.1.jar:4.0.1]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) ~[spring-boot-4.0.1.jar:4.0.1]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) ~[spring-boot-4.0.1.jar:4.0.1]
	at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:205) ~[spring-boot-4.0.1.jar:4.0.1]
	at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:181) ~[spring-boot-4.0.1.jar:4.0.1]
	at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:109) ~[spring-boot-4.0.1.jar:4.0.1]
	at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:171) ~[spring-web-7.0.2.jar:7.0.2]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4416) ~[catalina.jar:11.0.15]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[catalina.jar:11.0.15]
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:564) ~[catalina.jar:11.0.15]
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:663) ~[catalina.jar:11.0.15]
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:923) ~[catalina.jar:11.0.15]
	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1839) ~[catalina.jar:11.0.15]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) ~[na:na]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:81) ~[tomcat-util.jar:11.0.15]
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:124) ~[na:na]
	at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:727) ~[catalina.jar:11.0.15]
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:378) ~[catalina.jar:11.0.15]
	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1628) ~[catalina.jar:11.0.15]
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:260) ~[catalina.jar:11.0.15]
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) ~[catalina.jar:11.0.15]
	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:938) ~[catalina.jar:11.0.15]
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1137) ~[catalina.jar:11.0.15]
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1141) ~[catalina.jar:11.0.15]
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1119) ~[catalina.jar:11.0.15]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:369) ~[na:na]
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:310) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) ~[na:na]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-util.jar:11.0.15]
	at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na]
Caused by: java.lang.IllegalStateException: @ConditionalOnMissingBean did not specify a bean using type, name or annotation and the attempt to deduce the bean's type failed
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.validate(OnBeanCondition.java:654) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.<init>(OnBeanCondition.java:600) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:147) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	... 43 common frames omitted
Caused by: org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanTypeDeductionException: Failed to deduce bean type for org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration.replicationClientAdditionalFilters
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.deducedBeanTypeForBeanMethod(OnBeanCondition.java:683) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.deducedBeanType(OnBeanCondition.java:673) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.<init>(OnBeanCondition.java:593) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	... 45 common frames omitted
Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration] from ClassLoader [ParallelWebappClassLoader
  context: server-0.0.1-SNAPSHOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@1f17ae12
]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483) ~[spring-core-7.0.2.jar:7.0.2]
	at org.springframework.util.ReflectionUtils.findMethod(ReflectionUtils.java:240) ~[spring-core-7.0.2.jar:7.0.2]
	at org.springframework.util.ReflectionUtils.findMethod(ReflectionUtils.java:221) ~[spring-core-7.0.2.jar:7.0.2]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.findBeanMethod(OnBeanCondition.java:712) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.getMethodReturnType(OnBeanCondition.java:707) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.getReturnType(OnBeanCondition.java:691) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.deducedBeanTypeForBeanMethod(OnBeanCondition.java:680) ~[spring-boot-autoconfigure-4.0.1.jar:4.0.1]
	... 47 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/web/server/autoconfigure/ServerProperties
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3035) ~[na:na]
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2331) ~[na:na]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-7.0.2.jar:7.0.2]
	... 53 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.web.server.autoconfigure.ServerProperties
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1225) ~[catalina.jar:11.0.15]
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1056) ~[catalina.jar:11.0.15]
	... 57 common frames omitted

20-Jan-2026 14:01:23.444 SEVERE [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [server-0.0.1-SNAPSHOT.war]
	java.lang.IllegalStateException: Error starting child
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:567)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:663)
		at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:923)
		at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1839)
		at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:81)
		at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:124)
		at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:727)
		at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:378)
		at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1628)
		at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:260)
		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
		at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:938)
		at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1137)
		at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1141)
		at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1119)
		at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
		at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:369)
		at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:310)
		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095)
		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619)
		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57)
		at java.base/java.lang.Thread.run(Thread.java:1447)
	Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/server-0.0.1-SNAPSHOT]]
		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:404)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:179)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:564)
		... 23 more
	Caused by: java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration.replicationClientAdditionalFilters
		at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:60)
		at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:100)
		at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:196)
		at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
		at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:124)
		at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:458)
		at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:310)
		at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
		at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
		at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:794)
		at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:602)
		at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756)
		at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445)
		at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
		at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:205)
		at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:181)
		at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:109)
		at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:171)
		at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4416)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
		... 24 more
	Caused by: java.lang.IllegalStateException: @ConditionalOnMissingBean did not specify a bean using type, name or annotation and the attempt to deduce the bean's type failed
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.validate(OnBeanCondition.java:654)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.<init>(OnBeanCondition.java:600)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:147)
		at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)
		... 43 more
	Caused by: org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanTypeDeductionException: Failed to deduce bean type for org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration.replicationClientAdditionalFilters
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.deducedBeanTypeForBeanMethod(OnBeanCondition.java:683)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.deducedBeanType(OnBeanCondition.java:673)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.<init>(OnBeanCondition.java:593)
		... 45 more
	Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration] from ClassLoader [ParallelWebappClassLoader
  context: server-0.0.1-SNAPSHOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@1f17ae12
]
		at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483)
		at org.springframework.util.ReflectionUtils.findMethod(ReflectionUtils.java:240)
		at org.springframework.util.ReflectionUtils.findMethod(ReflectionUtils.java:221)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.findBeanMethod(OnBeanCondition.java:712)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.getMethodReturnType(OnBeanCondition.java:707)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.getReturnType(OnBeanCondition.java:691)
		at org.springframework.boot.autoconfigure.condition.OnBeanCondition$Spec.deducedBeanTypeForBeanMethod(OnBeanCondition.java:680)
		... 47 more
	Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/web/server/autoconfigure/ServerProperties
		at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
		at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3035)
		at java.base/java.lang.Class.getDeclaredMethods(Class.java:2331)
		at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465)
		... 53 more
	Caused by: java.lang.ClassNotFoundException: org.springframework.boot.web.server.autoconfigure.ServerProperties
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1225)
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1056)
		... 57 more
20-Jan-2026 14:01:23.444 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [server-0.0.1-SNAPSHOT.war] has finished in [2,649] ms

Sample

To reproduce, use the Spring Initializr by selecting:

  • java 25
  • spring boot 4.0.1
  • packaging war
  • add dependencies: spring web, eureka server

Edit the Application java class to include the @EnableEurekaServer.
Build it and deploy the war into tomcat 11

Discussion started here

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with EurekaServerAutoConfiguration, especially replicationClientAdditionalFilters, and reproduce the WAR deployment on Tomcat 11 using the error log. Investigate the missing ServerProperties class and verify that the packaged Eureka Server starts successfully in Tomcat without the reported condition-processing failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring, spring-boot
Domain
backend, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.