Description
Most of the scripts (tool) use shared.sh and in this script the WLST_EXT_CLASSPATH is set to a fixed value (and is not extended).
WLST_EXT_CLASSPATH="${WLSDEPLOY_HOME}/lib/weblogic-deploy-core.jar"; export WLST_EXT_CLASSPATH
So there is not way to set classpath before calling a tool, for example updateDomain.sh
.
In case of pure wlst using "${ORACLE_HOME}/oracle_common/common/bin/wlst.sh", I have used WLST_EXT_CLASSPATH for that purpose.
I have noticed this in case of updating "Custom security providers", see: https://oracle.github.io/weblogic-deploy-tooling/samples/securityproviders-model/
For example updating this configuration
SecurityConfiguration:
Realm:
myrealm:
RoleMapper:
XACMLRoleMapper:
XACMLRoleMapper:
myAppRoleMapper:
"xyz.myAppRoleMapper":
URL: 'someUrl'
User: 'someUser'
PasswordEncrypted: 'somePwd'
CacheExpiresInSeconds: 3605
produces this error
SEVERE Messages:
1. WLSDPLY-09015: updateDomain deployment failed: Unable to remove "myAppRoleMapper" in target domain release 14.1.1.0.0. The remove is required to properly configure the Realm Provider Type RoleMappers. Consult the WebLogic Deploy Tool documentation for further information. : Unable to delete(myAppRoleMapper, RoleMappers) in online mode : Error occurred while performing delete : Error while deleting an MBean : java.lang.ClassNotFoundException: xyz.myAppRoleMapperMBean
Use dumpStack() to view the full stacktrace :
I am using WDT version 2.1.0 with weblogic 14.1.1.0
The probable solution I see is, by propagating (extending) the set value of WLST_EXT_CLASSPATH in shared.sh
script:
WLST_EXT_CLASSPATH="${WLST_EXT_CLASSPATH}:${WLSDEPLOY_HOME}/lib/weblogic-deploy-core.jar"; export WLST_EXT_CLASSPATH