将 Java 应用部署到 SAP 云平台 neo 环境的两种方式
![将 Java 应用部署到 SAP 云平台 neo 环境的两种方式](https://static001.geekbang.org/infoq/67/6745230bacab674943260fc362b7b574.jpeg)
方法 1 - 使用 Eclipse
Eclipse 里新建一个服务器:
![](https://static001.geekbang.org/infoq/3e/3e9a2b4b3dcaa849f661e9bd838206ce.png)
服务器类型选择 SAP Cloud Platform:
![](https://static001.geekbang.org/infoq/a0/a05c8fe7bf1311a5f906817263711163.png)
![](https://static001.geekbang.org/infoq/31/312c1bb476801b79fec356414c5ad761.png)
点 Finish,成功创建了一个 Server:
![](https://static001.geekbang.org/infoq/b5/b508528b088234933ba0e20f5c8a266e.png)
Eclipse 里选择要部署的项目,右键->Run as Server, 选择上一步创建的 Server 即完成部署。
方法 2 - 使用 SAP 云平台 Cockpit
![](https://static001.geekbang.org/infoq/b2/b2e239b8a0bb66c76629258fe338aa6b.png)
选择本地打包好的 war 文件,点击 Deploy 按钮:
![](https://static001.geekbang.org/infoq/b5/b54a8a0bd0a178114d463f3b6937df67.png)
部署成功:
![](https://static001.geekbang.org/infoq/ae/ae94bca3d57223e2fc78a6c09d3d727b.png)
SAP help里提供了 CloudFoundry 和 Neo 环境下可用的 Region 和 API endpoint:
![](https://static001.geekbang.org/infoq/5b/5b72554fd80907c92812600443925a32.png)
![](https://static001.geekbang.org/infoq/d8/d85ff6551b23d5c23ff0b4b03b906716.png)
当我们期望用 SAP Cloud Connector 连接某个 SAP 云平台 Region 时,一般是从 F4 value help 里选择:
![](https://static001.geekbang.org/infoq/04/04185f02c30534b36b5d14b6a81a95c0.png)
如果 drop down list 里没有我们希望使用的 region 怎么办?
![](https://static001.geekbang.org/infoq/0c/0cb3ddaf4d0e302cecca3493def41c9a.png)
解决方案
点击 Configuration:
![](https://static001.geekbang.org/infoq/b8/b8f1f3ba5167896a6166d31323ac9c48.png)
![](https://static001.geekbang.org/infoq/bc/bcb588276eb544668400b697a37ea2f1.png)
手动添加一个即可:
![](https://static001.geekbang.org/infoq/d1/d1776b8bb870b853b67b2d1cd69bbfc7.png)
然后在 drop down list 里就可以选择这个自定义 region 了:
![](https://static001.geekbang.org/infoq/d3/d3b3b5f67eb8f30a420fc9bc38bccd9e.png)
Netweaver
以需要为一个用户上下文(User Context)能够在 SAP extended memory 区域中分配内存尺寸创建 quota 为例。
对于 Dialog 工作进程,使用事务码修改参数 ztta/roll_extension_dia.
![](https://static001.geekbang.org/infoq/4e/4e9795afde5a2fa70d293da14c7bcd68.png)
对于非 Dialog 工作进程,quota 参数为 ztta/roll_extension_nondia.可以用关键字 quota 搜索更多 RZ11 参数。
CloudFoundry
Quota 不够会怎样?当我试图部署一个应用到 SAP 云平台的 neo 环境时,可能会遇到如下错误消息。
![](https://static001.geekbang.org/infoq/a3/a351e7b6e446227c90ee4e9c3cd36381.png)
在 neo 环境下,需要管理员使用 SAP 帮助文档里提到的 set-quota 命令给 subaccount 手动分配 quota,之后才能使用应用。
解决方案
完整命令行:
分配成功:
![](https://static001.geekbang.org/infoq/f5/f5a070962c67bd9c5dc41d0f31b24c88.png)
分配成功的计算单元在 Cockpit 里的显示:
![](https://static001.geekbang.org/infoq/5c/5ce33a06441226894c8f1bf3a26cc509.png)
环境:SAP CRM WebClient UI
需求:在 WebClient UI 里不通过用户手动点击,而是使用 JavaScript 代码自动触发 ABAP 后台的代码。
解决方案:
1. 定义一个 hidden button, 其 onClick 事件处理函数(event handler)设置成 SAP ABAP 后台的 event Refresh:
![](https://static001.geekbang.org/infoq/5c/5c5586c8474a54b1d6df52b58bc11370.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
2. 通过 document.getElementByID 拿到该 button 的实例,再调用其方法 click()触发 ABAP backend 事件:
![](https://static001.geekbang.org/infoq/e5/e59aa50526cc3c279f2b9093063b3ed5.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
打开 page,发现 backend event 成功被触发:
![](https://static001.geekbang.org/infoq/8d/8d9e016193681381b42ca1e7fa0e80e2.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/0d/0dab3d1fb8bc73e6c84b7ca789d804d7.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙"。
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/131966f9fe28c5b74d5d98883】。文章转载请联系作者。
评论