部署 SAP UI5 应用到 SAP BTP 时遇到的 error retrieving MTA 错误消息

507 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情

问题描述

当我试图使用 SAP 成都研究院 Business Application Studio 部署一个 SAP UI5 应用到 SAP Business Technology Platform 时,运行命令行 npm run deploy, 遇到如下错误消息:

Error retrieving MTA: Could not find MTA mta_archives/archive.mtar

问题分析

查找 SAP UI5 应用文件夹下面,确实没有这个名为 mta_archives/archive.mtar 的文件。

根据 template 创建应用时,如果可以选择 Multi-Target Application 模板,

则可以手动往这个 MTA 应用里添加 HTML5 module:

然后对应用进行 build,可以生成 mtar 文件,之后可以部署了。

回到我们的实际例子,确实可以从模板创建 MTA 应用:

但是现在我们已经有一个 Java 应用了。

首先把我们现在的项目代码提交到 Github 上:

4f8ae60dtrial.us10cf.trial.applicationstudio.cloud.sap/index.html#…

push 的时候报错:Git:fatal: No configured push destination

我们使用命令行 cds add mta 给 Java 应用自动生成一个 mta.yaml 文件:

自动生成了一个 mta.yaml 文件,里面包含了一个 Java module:

执行 mbt build 命令,会执行 mta.yaml 文件里定义的 build task

最后成功生成了 archive 文件:

以前我没有把这个 Java 应用使用 cds add mta 时,直接使用 cf push 进行的部署。

如今,使用 Deploy MTA Archive 菜单进行部署:

部署完毕后生成一个应用,但是显示 Error 提示:

点击 Application Routes 之后:

404 Not Found: Requested route ('4f8ae60dtrial-dev-bookstore-srv.cfapps.us10.hana.ondemand.com') does not exist.

很多错误:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

当我们用 cf push 部署单个 Java 应用时,使用的文件是 manifest.yaml:

---
applications:
- name: bookstore
  path: srv/target/bookstore-exec.jar
  random-route: true
  services:
  - bookstore-hana

在项目文件夹的 default-env.json 里,是包含了 SAP BTP 上 HANA Cloud instance 的 url 和 access credentials 等信息。

而 mta.yaml 文件里,根本没有把 Java 应用和 SAP BTP 上的 HANA Cloud instance 建立关联关系,所以启动时报 JDBC 的错误。