使用 Worklight 适配器,我可以在运行时更改过程的域和端口吗?

Posted

技术标签:

【中文标题】使用 Worklight 适配器,我可以在运行时更改过程的域和端口吗?【英文标题】:With a Worklight Adapter can I change the domain and port for a procedure at runtime? 【发布时间】:2013-06-09 23:20:03 【问题描述】:

我正在编写一个工作灯应用程序,它将连接到各种后端服务,这些服务将在安装后由消费者决定。我想使用适配器将客户端连接到后端服务 - 但希望避免为每个连接用户编辑和更新适配器。

基本上每个客户都有一个我想连接的正在运行的服务器 - 但是它将为每个客户在不同的端口和域上运行。我希望他们能够将这些传递给适配器,以允许向客户的后端服务器发出公共调用。

有没有一种方法可以在适配器的 javascript 中为每个过程以编程方式更改我在适配器的 xml 文件中设置的域和端口,以便用户可以告诉服务器向哪里发出请求?

如果无法做到这一点 - 您是否建议直接连接到后端并避免使用工作灯适配器?

非常感谢,

安迪

【问题讨论】:

【参考方案1】:

正如您猜对的那样 - 客户端(应用程序)向 Worklight Server 发送一个适配器过程请求,然后 Worklight Server 执行它已被编程执行的任何操作,连接到它被请求的位置(如适配器 XML 的 @ 中所定义) 987654322@ 元素)。这在运行时/部署后无法更改。

我不知道您的应用程序应该做什么,因为场景并不完全清楚......但您可以为所有各种后端及其连接参数集预先部署所有必需的适配器,并在客户端编写一些逻辑来确定要使用哪些适配器。这里肯定会有适配器重复,但它不应该在运行时产生太多开销(但在可维护性方面是的)。

是的,您还可以创建自己的“接口”,以允许最终用户在向后端发送直接请求之前更改连接参数(即不使用 Worklight 适配器),但这并没有听起来像是最终用户需要嘲笑的东西。

【讨论】:

我明白了——真可惜。 WL 客户端 API 是否提供任何可在适配器服务器端访问的 XML -> JSON 转换? 您应该为此打开一个新问题。您可以在适配器中使用 JSON.stringify() 和 JSON.parse() 来操作 JSON。如果您想操作 JSONXMLString 转换,您可以添加一个开源库来执行此操作,例如json.org/java.

以上是关于使用 Worklight 适配器,我可以在运行时更改过程的域和端口吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 IBM Worklight 中运行 HTTP 适配器时出错

IBM Worklight Http 适配器

Worklight 单步验证和 SQL 适配器

用于真实设备的 IBM Worklight SQL 适配器

麻烦:WAS - 带有 JMS 适配器的 Worklight

如何在 Worklight 6.2 中链接来自移动客户端的适配器调用?