-
Notifications
You must be signed in to change notification settings - Fork 91
Description
Deploying libraries with deployApps.sh (Version 1.9.5) online works not correctly for libraries.
Extension-Name, Implementation-Version and Specification-Version from the MANIFEST.mf are not attached to the library name during the deployment as it is done for apps.
The MANIFEST.mf:
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.3.0
Build-Jdk-Spec: 11
Extension-Name: xyz_lib_v1_jdk11_4.0
Implementation-Version: 4.0
Specification-Version: 1.0
The model:
appDeployments:
Library:
'xyz_lib_v1_jdk11':
SourcePath: 'wlsdeploy/sharedLibraries/xyz_lib_v1_jdk11.war'
Target: 'xxx_cluster'
ModuleType: war
Application:
'xyz_v1_jdk11':
SourcePath: 'wlsdeploy/applications/xyz_v1_jdk11.war'
Target: 'xxx_cluster'
ModuleType: war
The deploy command:
/home/oracle/weblogic-deploy/bin/deployApps.sh -oracle_home /u01/app/oracle/middleware -domain_type WLS -domain_home /u01/app/oracle/middleware/user_projects/domains/xyz_domain -archive_file xyz_v1.zip -model_file deploy_app.yaml -admin_url t3://n.nnn.nnn.nnn:nnnn -admin_user ABC`
The error message
1. WLSDPLY-09015: deployApps deployment failed: deployApplication(xyz_lib_v1_jdk11, (), {'targets': 'xxx_cluster', 'path': '/u01/app/oracle/middleware14.1.1.0.0/user_projects/domains/xyz_domain/wlsdeploy/sharedLibraries/xyz_lib_v1_jdk11.war', 'libraryModule': 'true'}) failed: Error occurred while performing deploy : Target exception thrown while deploying application: Error occurred while performing deploy : Deployment Failed. : Error occurred while performing deploy : Deployment Failed.
The deployment with the following work around is successful
appDeployments:
Library:
'xyz_lib_v1_jdk11_4.0#1.0@4.0':
SourcePath: 'wlsdeploy/sharedLibraries/xyz_lib_v1_jdk11.war'
Target: 'xxx_cluster'
ModuleType: war
Application:
'xyz_v1_jdk11':
SourcePath: 'wlsdeploy/applications/xyz_v1_jdk11.war'
Target: 'xxx_cluster'
ModuleType: war
In this case Extension-Name, Implementation-Version and Specification-Version from the MANIFEST.mf are specified explicitly in the library name.
The problem is located in applications_deployer.py in function __deploy_app_online which is used for app and lib deployment in the following lines:
# if options is not None and 'libraryModule' in options and string_utils.to_boolean(options['libraryModule']):
computed_name = self.__get_deployable_application_versioned_name(source_path, application_name)
application_name = computed_name
Here the function for getting the versioned library name is not called. I fixed this line locally but then came another problem: the program did not detect that the library was already deployed.