YYYY-MM-DDT07:55:27.299Z | INFO | main | ApplicationContext.java | 623 | No Spring WebApplicationInitializer types detected on classpath
YYYY-MM-DDT07:55:27.366Z | INFO | main | ApplicationContext.java | 623 | Initializing Spring root WebApplicationContext
YYYY-MM-DDT07:55:30.217Z | ERROR | main | StandardContext.java | 4024 | Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'vcInventory' defined in class path resource [eam-server-vim-beans.xml]: Unsatisfied dependency expressed through constructor parameter 10: Could not convert argument value of type [java.lang.String] to required type [boolean]: Failed to convert value of type 'java.lang.String' to required type 'boolean'; nested exception is java.lang.IllegalArgumentException: Invalid boolean value [${pmm.infra}]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:756) ~[spring-beans-5.3.42.jar:5.3.42]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:220) ~[spring-beans-5.3.42.jar:5.3.42]
/usr/lib/vmware-eam/config/eam-server-vim-beans.xml
the following entry exists:
<constructor-arg value="${pmm.infra}"/>
The value ${pmm.infra} is expected to be resolved from a properties file during service initialization.
However, the value is not resolved and is passed as a string, causing the boolean conversion to fail.
vCenter Server
The EAM service uses Spring configuration where property placeholders like ${pmm.infra} are loaded from property files such as:
/etc/vmware-eam/eam-vim.properties/etc/vmware-eam/features.properties
During startup, the property loader resolves these placeholders before creating beans.
The vcInventory bean expects the parameter pmm.infra to be a boolean value:
trueorfalse
If the property cannot be resolved, the literal value ${pmm.infra} is passed to the constructor.
Since the constructor expects a boolean, the conversion fails and EAM service startup stops.
This can happen when:
Property file is missing
Property entry is missing
Property value is empty
Property file corrupted
Incorrect file copied during patch / restore
Permission issue prevents reading the property file
In this case, the features.properties file did not contain a valid value for pmm.infra.
#########################################################################
# Copyright 2017-2023 VMware, Inc.
# All rights reserved. VMware Confidential
#########################################################################
# The values will be updated on each EAM restart based on
# Feature State Switch mappings from "features.json"
use.sha256.hash.algorithm=false
lccm.solutions=false
inaccessible.system.vms=false
quick.patch.partial.mm=true
nsx.partial.mm=false
pmm.infra=true