如何在Java代码中使用SAP云平台CloudFoundry环境的环境变量

简介:

本文使用的例子源代码在我的github上。

在我的公众号文章在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务介绍了如何通过Cloud Connector连接ABAP On-Premise系统。

我创建了三个service的实例,详情如上图和下表:

服务类型 服务实例名称
connectivity connectivity-jerry-demo
destination jerry-destination-lite
xsuaa xsuaa-jerry-demo

这三个服务实例的名称维护在应用的manifest.xml中。

将应用使用cf push部署到CloudFoundry之后,在Cockpit里能观察到生成的系统变量VCAP_SERVICES:

在Java代码里,使用如下代码将该环境变量的值读取出来存储到字符串中。


private static final String VCAP_SERVICES = System.getenv("VCAP_SERVICES");

该Json对象的具体字段通过getJSONObject读取出来。

下图是connectivity实例的credentials明细:

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

附录

VCAP_SERVICES全部内容:


{
    "VCAP_SERVICES": {
        "xsuaa": [
            {
                "name": "xsuaa-jerry-demo",
                "instance_name": "xsuaa-jerry-demo",
                "binding_name": null,
                "credentials": {
                    "uaadomain": "authentication.eu10.hana.ondemand.com",
                    "tenantmode": "dedicated",
                    "sburl": "https://internal-xsuaa.authentication.eu10.hana.ondemand.com",
                    "clientid": "sb-connectivity-jerry-demo!t3704",
                    "verificationkey": "-----BEGIN PUBLIC KEY-----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwThn6OO9kj0bchkOGkqYBnV1dQ3zU/xtj7Kj7nDd8nyRMcEWCtVzrzjzhiisRhlrzlRIEY82wRAZNGKMnw7cvCwNixcfcDJnjzgr2pJ+5/yDZUc0IXXyIWPZD+XdL+0EogC3d4+fqyvg/BF/F0t2hKHWr/UTXE6zrGhBKaL0d8rKfYd6olGWigFd+3+24CKI14zWVxUBtC+P9Fhngc9DRzkXqhxOK/EKn0HzSgotf5duq6Tmk9DCNM4sLW4+ERc6xzrgbeEexakabvax/Az9WZ4qhwgw+fwIhKIC7WLwCEJaRsW4m7NKkv+eJR2LKYesuQ9SVAJ3EXV86RwdnH4uAv7lQHsKURPVAQBlranSqyQu0EXs2N9OlWTxe+FyNkIvyZvoLrZl/CdlYc8AKxRm5rn2/88nkrYQ0XZSrnICM5FRWgVF2hn5KfZGwtBN85/D4Yck6B3ocMfyX7e4URUm9lRPQFUJGTXaZnEIge0R159HUwhTN1HvyXrs6uT1ZZmW+c3p47dw1+LmUf/hIf8zd+uvHQjIeHEJqxjqfyA8yqAFKRHKVFrwnwdMHIsRap2EKBhHMfeVf0P2th5C9MggYoGCvdIaIUgMBX3TtCdvGrcWML7hnyS2zkrlA8SoKJnRcRF2KxWKs355FhpHpzqyZflO5l98+O8wOsFjGpL9d0ECAwEAAQ==-----END PUBLIC KEY-----",
                    "xsappname": "connectivity-jerry-demo!t3704",
                    "identityzone": "jerry",
                    "identityzoneid": "f3bd7f84-ebf1-4c11-b7c7-a278ebd54dcb",
                    "clientsecret": "WAxzZxYQCgB7Dkml8dFdU+kaLSE=",
                    "tenantid": "f3bd7f84-ebf1-4c11-b7c7-a278ebd54dcb",
                    "url": "https://jerry.authentication.eu10.hana.ondemand.com"
                },
                "syslog_drain_url": null,
                "volume_mounts": [],
                "label": "xsuaa",
                "provider": null,
                "plan": "application",
                "tags": [
                    "xsuaa"
                ]
            }
        ],
        "connectivity": [
            {
                "name": "connectivity-jerry-demo",
                "instance_name": "connectivity-jerry-demo",
                "binding_name": null,
                "credentials": {
                    "uaadomain": "authentication.eu10.hana.ondemand.com",
                    "onpremise_proxy_port": "20003",
                    "tenantmode": "dedicated",
                    "clientid": "sb-clone5282c913c9164bb284239adcc4d74210!b3704|connectivity!b17",
                    "verificationkey": "-----BEGIN PUBLIC KEY-----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwThn6OO9kj0bchkOGkqYBnV1dQ3zU/xtj7Kj7nDd8nyRMcEWCtVzrzjzhiisRhlrzlRIEY82wRAZNGKMnw7cvCwNixcfcDJnjzgr2pJ+5/yDZUc0IXXyIWPZD+XdL+0EogC3d4+fqyvg/BF/F0t2hKHWr/UTXE6zrGhBKaL0d8rKfYd6olGWigFd+3+24CKI14zWVxUBtC+P9Fhngc9DRzkXqhxOK/EKn0HzSgotf5duq6Tmk9DCNM4sLW4+ERc6xzrgbeEexakabvax/Az9WZ4qhwgw+fwIhKIC7WLwCEJaRsW4m7NKkv+eJR2LKYesuQ9SVAJ3EXV86RwdnH4uAv7lQHsKURPVAQBlranSqyQu0EXs2N9OlWTxe+FyNkIvyZvoLrZl/CdlYc8AKxRm5rn2/88nkrYQ0XZSrnICM5FRWgVF2hn5KfZGwtBN85/D4Yck6B3ocMfyX7e4URUm9lRPQFUJGTXaZnEIge0R159HUwhTN1HvyXrs6uT1ZZmW+c3p47dw1+LmUf/hIf8zd+uvHQjIeHEJqxjqfyA8yqAFKRHKVFrwnwdMHIsRap2EKBhHMfeVf0P2th5C9MggYoGCvdIaIUgMBX3TtCdvGrcWML7hnyS2zkrlA8SoKJnRcRF2KxWKs355FhpHpzqyZflO5l98+O8wOsFjGpL9d0ECAwEAAQ==-----END PUBLIC KEY-----",
                    "xsappname": "clone5282c913c9164bb284239adcc4d74210!b3704|connectivity!b17",
                    "identityzone": "jerry",
                    "clientsecret": "nyiGD9QQSOZO+NTeEJdexWWjxYY=",
                    "tenantid": "f3bd7f84-ebf1-4c11-b7c7-a278ebd54dcb",
                    "url": "https://jerry.authentication.eu10.hana.ondemand.com",
                    "onpremise_proxy_host": "10.0.85.1"
                },
                "syslog_drain_url": null,
                "volume_mounts": [],
                "label": "connectivity",
                "provider": null,
                "plan": "lite",
                "tags": [
                    "connectivity",
                    "conn",
                    "connsvc"
                ]
            }
        ],
        "destination": [
            {
                "name": "jerry-destination-lite",
                "instance_name": "jerry-destination-lite",
                "binding_name": null,
                "credentials": {
                    "uaadomain": "authentication.eu10.hana.ondemand.com",
                    "tenantmode": "dedicated",
                    "clientid": "sb-clone39a01503ac1845fbbda5d5ffccb1a469!b3704|destination-xsappname!b404",
                    "instanceid": "39a01503-ac18-45fb-bda5-d5ffccb1a469",
                    "verificationkey": "-----BEGIN PUBLIC KEY-----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwThn6OO9kj0bchkOGkqYBnV1dQ3zU/xtj7Kj7nDd8nyRMcEWCtVzrzjzhiisRhlrzlRIEY82wRAZNGKMnw7cvCwNixcfcDJnjzgr2pJ+5/yDZUc0IXXyIWPZD+XdL+0EogC3d4+fqyvg/BF/F0t2hKHWr/UTXE6zrGhBKaL0d8rKfYd6olGWigFd+3+24CKI14zWVxUBtC+P9Fhngc9DRzkXqhxOK/EKn0HzSgotf5duq6Tmk9DCNM4sLW4+ERc6xzrgbeEexakabvax/Az9WZ4qhwgw+fwIhKIC7WLwCEJaRsW4m7NKkv+eJR2LKYesuQ9SVAJ3EXV86RwdnH4uAv7lQHsKURPVAQBlranSqyQu0EXs2N9OlWTxe+FyNkIvyZvoLrZl/CdlYc8AKxRm5rn2/88nkrYQ0XZSrnICM5FRWgVF2hn5KfZGwtBN85/D4Yck6B3ocMfyX7e4URUm9lRPQFUJGTXaZnEIge0R159HUwhTN1HvyXrs6uT1ZZmW+c3p47dw1+LmUf/hIf8zd+uvHQjIeHEJqxjqfyA8yqAFKRHKVFrwnwdMHIsRap2EKBhHMfeVf0P2th5C9MggYoGCvdIaIUgMBX3TtCdvGrcWML7hnyS2zkrlA8SoKJnRcRF2KxWKs355FhpHpzqyZflO5l98+O8wOsFjGpL9d0ECAwEAAQ==-----END PUBLIC KEY-----",
                    "xsappname": "clone39a01503ac1845fbbda5d5ffccb1a469!b3704|destination-xsappname!b404",
                    "identityzone": "jerry",
                    "clientsecret": "QCnO+2k8gvUkdTyiCZI5rhzylbQ=",
                    "tenantid": "f3bd7f84-ebf1-4c11-b7c7-a278ebd54dcb",
                    "uri": "https://destination-configuration.cfapps.eu10.hana.ondemand.com",
                    "url": "https://jerry.authentication.eu10.hana.ondemand.com"
                },
                "syslog_drain_url": null,
                "volume_mounts": [],
                "label": "destination",
                "provider": null,
                "plan": "lite",
                "tags": [
                    "destination",
                    "document"
                ]
            }
        ],
        "application-logs": [
            {
                "name": "jerry-log",
                "instance_name": "jerry-log",
                "binding_name": null,
                "credentials": {},
                "syslog_drain_url": "https://10.0.104.16:4433/syslogv2/ZmE4OTNmMjYtNjllZS00YTRhLWFhMDQtOGY4YWUwNjc2NDc1L2Nvbm5lY3Rpdml0eS1qZXJyeS1kZW1vLzY5YWJmZDQ2LWQyMjgtNDkwMy1iMjQ1LWRlODhjZWZmMzY0Mi9kZXYvMDE2ZGUwODktMDc0MS00NzlhLTgyOGEtNDVjNGVmMTY5MzUyL0kwNDI0MTZ0cmlhbF9qZXJyeS8wNWMyYzY0Ny1lYjYwLTQwYjQtYjhiYi02NTEyYTBlZmQ2NjIvYXBwbGljYXRpb24tbG9ncy8zZTQ2NmZjNi04MzNlLTQzMGEtYTVhMS1iOWFhMjMxOTUwYzgvbGl0ZS81MWYzYWE3Mi1lYzE4LTQ4YTgtYTVjNS1lNGJlMWVlMDQ2MTUvamVycnktbG9nLzA3Y2MwOWZlZTFmM2VjNDNhYWIzZmMzMTAwMzQ5NTMwYmIzMjJmODE0NDE1ZGI3MTBkM2JlM2NmMDliNTI4Mjc",
                "volume_mounts": [],
                "label": "application-logs",
                "provider": null,
                "plan": "lite",
                "tags": []
            }
        ]
    }
}
{
    "VCAP_APPLICATION": {
        "cf_api": "https://api.cf.eu10.hana.ondemand.com",
        "limits": {
            "fds": 16384,
            "mem": 512,
            "disk": 1024
        },
        "application_name": "connectivity-jerry-demo",
        "application_uris": [
            "connectivity-jerry-demo-i042416.cfapps.eu10.hana.ondemand.com"
        ],
        "name": "connectivity-jerry-demo",
        "space_name": "dev",
        "space_id": "69abfd46-d228-4903-b245-de88ceff3642",
        "uris": [
            "connectivity-jerry-demo-i042416.cfapps.eu10.hana.ondemand.com"
        ],
        "users": null,
        "application_id": "fa893f26-69ee-4a4a-aa04-8f8ae0676475",
        "version": "d964d7cc-e067-4810-b834-25c995fe1bc5",
        "application_version": "d964d7cc-e067-4810-b834-25c995fe1bc5"
    }
}

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

相关文章
|
12天前
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
38 0
|
14天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
25 8
|
17天前
|
前端开发 小程序 Java
uniapp上传图片 前端以及java后端代码实现
uniapp上传图片 前端以及java后端代码实现
31 0
|
5天前
|
JavaScript Java 测试技术
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
23 0
|
5天前
|
JavaScript Java 测试技术
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
17 0
|
5天前
|
JavaScript Java 测试技术
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
16 1
|
5天前
|
JavaScript Java 测试技术
基于Java的直播电商交流平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的直播电商交流平台的设计与实现(源码+lw+部署文档+讲解等)
13 0
|
6天前
|
JavaScript Java 测试技术
基于Java的课程在线教学平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的课程在线教学平台的设计与实现(源码+lw+部署文档+讲解等)
25 0
|
7天前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
33 6
|
9天前
|
JavaScript Java 测试技术
基于Java的校园二手交易平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的校园二手交易平台的设计与实现(源码+lw+部署文档+讲解等)
23 0