如何将 SAP Business Application Studio 里开发的 Java 应用部署到 SAP BTP 上

举报
汪子熙 发表于 2022/10/31 23:31:40 2022/10/31
【摘要】 首先在项目根目录新建一个文件 manifest.yml,内容如下:---applications:- name: bookstore path: srv/target/bookstore-exec.jar random-route: true services: - bookstore-hana文件描述了应用程序的名称和可以找到应用程序存档的路径。 Spring Boot 应用程序可...

首先在项目根目录新建一个文件 manifest.yml,内容如下:

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

文件描述了应用程序的名称和可以找到应用程序存档的路径。 Spring Boot 应用程序可以从单个 JAR 存档中部署,如上面 path 字段值所示:srv/target/bookstore-exec.jar.

应用程序的路由(即可用的 HTTP 端点)随机生成(random-route: true),以防止与其他应用程序路由发生冲突。

之前的 SAP HANA 服务实例的名称 bookstore-hana 在此处的服务部分 (bookstore-hana) 下使用。

Cloud Foundry 使用 Open Service Broker API 为应用程序提供服务。 在 Cloud Foundry 上运行应用程序时,可以使用环境变量 VCAP_SERVICES(类似于 default-env.json 的内容),其中包含所有必需的服务凭证。 CAP Java 可以自动读取此环境变量并将您的应用程序配置为使用 SAP HANA 数据库。

所描述的功能再次作为 CAP Java 中的另一个插件提供。 因此,您需要向项目中添加额外的 Maven 依赖项。 该依赖项将带来从 Cloud Foundry 的 VCAP_SERVICES 环境变量读取服务绑定的能力。

为了使用 CloudFoundry 上的 Open Service Broker API,需要在 pom.xml 里添加如下的依赖:

<dependency>
        <groupId>com.sap.cds</groupId>
        <artifactId>cds-feature-cloudfoundry</artifactId>
    </dependency>

即使启用了 Cloud Foundry 功能,CAP Java 也可以确保应用程序仍然可以在本地运行,使用基于 default-env.json 自动配置的 SQLite 或 SAP HANA。 它在所有环境中提供无缝的开发人员体验。

如果我们向应用程序添加了额外的 Java 系统属性 -Dspring-boot.run.profiles=cloud,以确保 application.yaml 中的默认 SQLite 配置不会生效。 将应用程序部署到 Cloud Foundry 时,Cloud Foundry Java Buildpack 会自动完成。

使用命令行 mvn clean install 进行构建:

使用 cf push 进行部署:

最终生成的应用 url:

https://bookstore-cheerful-baboon-hl.cfapps.us10.hana.ondemand.com/

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。