SAP Business Technology Platform CloudFoundry 环境的 Java 应用支持下列 4 种 Application container:
-
Tomcat
-
TomEE
-
TomEE 7
-
Java Main
Tomcat
默认情况下,使用 SAP Java buildpack 推送的 Web 应用程序在 Apache Tomcat 容器中运行。
应用程序可以使用应用程序 manifest.yml 文件中的 TARGET_RUNTIME 环境变量显式定义目标应用程序容器。
---
applications:
- name: <APP_NAME>
...
env:
TARGET_RUNTIME: tomcat
tomcat 应用运行时容器提供以下标准 API:
-
Java Servlets 3.1
-
Java ServerPages (JSP) 2.3
-
Expression Language (EL) 3.0
-
Debugging Support for Other Languages 1.0
-
Java API for WebSocket 1.1
Customizing the SAP Java Buildpack Defaults
SAP Java Buildpack 为 Tomcat 应用程序容器提供了一些默认配置,这些配置可以由应用程序使用资源配置功能进行自定义。
以下是应用程序可以自定义的所有占位符及其默认值的列表:
[图片]
配置 HTTP header size 的例子:
env:
JBP_CONFIG_RESOURCE_CONFIGURATION: "['tomcat/conf/server.xml': {'connector.maxHttpHeaderSize':1024}]"
配置最大线程数的例子:
env:
JBP_CONFIG_RESOURCE_CONFIGURATION: "['tomcat/conf/server.xml': {'connector.maxThreads':800}]"
开启 HTTP trace 的例子:
env:
JBP_CONFIG_RESOURCE_CONFIGURATION: "['tomcat/conf/server.xml': {'connector.allowTrace':true}]"
TomEE
默认情况下,使用 SAP Java buildpack 推送的 Web 应用程序在 Apache Tomcat 容器中运行。
通过使用应用程序 manifest.yml 文件中的 TARGET_RUNTIME 环境变量,应用程序可以显式定义目标应用程序容器 - Apache TomEE。
---
applications:
- name: <APP_NAME>
...
env:
TARGET_RUNTIME: tomee
Java Options
可以通过定义 JBP_CONFIG_JAVA_OPTS 环境变量来配置 Java 属性。
在应用程序的 manifest.yml 文件中定义 JBP_CONFIG_JAVA_OPTS 环境变量。
---
applications:
- name: <app-name>
memory: 512M
...
env:
JBP_CONFIG_JAVA_OPTS: 'java_opts: ''-DtestJBPConfig=^%PATH^% -DtestJBPConfig1="test test" -DtestJBPConfig2="%PATH%"'''
使用 Cloud Foundry 命令行界面 (cf CLI) 的 cf set-env 命令定义 JBP_CONFIG_JAVA_OPTS 环境变量。
Java Out Of Memory Behavior
当 JVM 遇到终端故障时,SAP Java Buildpack 将堆的直方图打印到日志中。 除此之外,如果应用程序绑定到名称或标签包含 heap-dump 的卷服务,也会生成一个堆转储文件并将其存储在挂载的卷中。