如何获取部署 Java 适配器的 IBM MobileFirst 服务器的主机名和端口?

Posted

技术标签:

【中文标题】如何获取部署 Java 适配器的 IBM MobileFirst 服务器的主机名和端口?【英文标题】:How to get Hostname and Port of IBM MobileFirst server where a Java Adapter is deployed? 【发布时间】:2016-09-28 17:36:01 【问题描述】:

我正在使用 IBM MobileFirst Platform Foundation 8.0.0。我有一个 Java 适配器,它部署在调用外部服务的 mobilefirst 服务器上。在外部系统上创建资源后,我在“位置”响应头中返回创建的 id。它为我提供了外部系统创建资源的完整 url,例如 http://example.com:1234/resource_name/1234

我不想将外部系统的 url 暴露给我的适配器的调用者/客户端。我想返回这样的东西 - http://mobilefirstserver.com:6789/mfp/api/adapters/MyAdapter/resource_name/1234

其中“mobilefirstserver”是运行 MyAdapter 的服务器。我无法从 mfp 库中找到任何可以检索“mobilefirstserver”和“6789”的方法。我可以从 adapter.xml 中检索适配器的目标 URI,即“example”和“1234”,但不能检索 mobilefirst 服务器的主机和端口详细信息。

【问题讨论】:

【参考方案1】:

一些选项:

    使用配置 API 获取它:ConfigurationAPI.getServerJNDIProperty("mfpadmin/mfp.admin.‌​authorization.server‌​.url") - 这将是这样的:http://localhost:9080/mfp/api。您需要从中提取主机和端口。

    您可以在客户端使用WL.App.getServerUrl API,并将其用作调用适配器的参数。但这对你的场景没什么意义(虽然我没有完全“明白”场景是什么)。

    由于服务器是你的,你可以简单地在你的适配器实现中硬编码这些值。

【讨论】:

谢谢伊丹。我正在使用 ConfigurationAPI..getServerJNDIProperty("mfpadmin/mfp.admin.authorization.server.url") 来获取 mobilefirst 服务器主机和端口。可以吗? 请注意,您需要从中提取主机和端口。 我有类似的要求,但我将 ConfigurationAPI.getServerJNDIProperty("mfpadmin/mfp.admin.‌​authorization.server‌​.url") 作为 null。我正在使用@Context ConfigurationAPI configApi;我正在使用 devKit mobilefirst 服务器,也没有手动设置任何属性。

以上是关于如何获取部署 Java 适配器的 IBM MobileFirst 服务器的主机名和端口?的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6 - 我如何在适配器端获取客户端 IP 地址

带有外部库的 IBM MobileFirst 适配器

适配器部署失败 IBM Worklight 6.0

ibm mobilefirst - 从 java 适配器调用 javascript 适配器

部署 IBM Mobile v8.0.0 MobileFirst HTTP Adater 错误 - “适配器部署失败:检测到数据库错误。”

IBM Worklight 6.0.0.1 - 将适配器部署到服务器时出错