We had a demo MTA running on SAP Cloud Foundry. This MTA was build via the mta_archive_builder tool provided by SAP and deployed via the CF CLI. Now, about a year later, we want to update this MTA, nothing major, just a properties update.
Before I tried building and deploying anything, I upgraded all the required tools.
The MTA builds just fine, but when deploying the MTAR, the upload of our java application(s) fails. The logs states that the environment expects some ZIP file. The mtar archive only holds .jar files, should those be ZIP's? If so, how?
I already tried using the new MTA builder, without any luck. The same problem occurs.
cf.exe version 6.45.0+5f9ff16f9.2019-06-03
Listing installed plugins...
plugin version command name command help
multiapps 2.1.1 bg-deploy Deploy a multi-target app using blue-green deployment
multiapps 2.1.1 deploy Deploy a new multi-target app or sync changes to an existing one
multiapps 2.1.1 download-mta-op-logs, dmol Download logs of multi-target app operation
multiapps 2.1.1 mta Display health and status for a multi-target app
multiapps 2.1.1 mta-ops List multi-target app operations
multiapps 2.1.1 mtas List all multi-target apps
multiapps 2.1.1 purge-mta-config Purge no longer valid configuration entries
multiapps 2.1.1 undeploy Undeploy a multi-target app
mta_archive_builder version 1.1.19
- name: ovinto
type: java
path: workspace/ovinto
parameters:
memory: 2048M
disk-quota: 512M
health-check-type: process
provides:
- name: ovinto_api
properties:
url: '${default-url}'
properties:
SPRING_PROFILES_ACTIVE: sapcloudfoundry
build-parameters:
builder: maven
maven-opts:
command: [ clean, verify ]
profiles:
- sapcf
defines:
skipTests: true
build-result: target/*.jar
Important log entry:
#2.0#2019 06 06 13:06:36.042#Z#DEBUG#com.sap.cloud.lm.sl.xs2.76178077.MAIN_LOG.uploadAppTask#
######com.sap.cloud.lm.sl.cf.persistence.services.ProcessLogger########flowable-async-job-executor-thread-3###
[UploadAppStep] Error uploading application "ovinto". [failed] "{
"response_code": "422",
"response_body": "{\"description\":\"The request is semantically invalid: bits uploaded is not a valid zip file\"}",
"response": {
"date": [
"Thu, 06 Jun 2019 13:06:27 GMT"
],
"content-length": [
"92"
],
"content-type": [
"text/plain; charset=utf-8"
],
"connection": [
"close"
]
}
}"#
The question has been answered on the SAP Community, you can find the answer here: https://answers.sap.com/questions/12705200/deploy-mtar-via-cf-cli.html
Basically one of the tools creates faulty jar files within the .mtar archive. The solution is to unpack the mtar, fix the jar archives with the command "zip -FF" and repack them into the .mtar archive.