快速业务通道

通过URL打开Eclipse Rich Client Platform应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
text context) throws Exception {    super.start(context);    new URIServer().start();  }

TCP 客户机应用程序 — URIClient

TCP 客户机被部署为不会被 RCP 应用程序引用的独立 Java 文件。在由与 rcp:// 协议相关的批处理文件触发后将执行 URIClient.main()。

构造函数将把 URL 参数传递给 tcpConnect 方法。此方法将通过 URIConstants 在客户机和服务器已知的主机编号上构造一个套接字,该套接字以本地主机上的 TCP 服务器为目标。

提示:考虑一下,虽然 Java 客户机没有被 RCP 插件引用,但是在插件内部署 Java 客户机将允许通过 Eclipse 更新程序框架更新代码。如果它驻留在插件外部,那么部署代码更新将变得更加困难。

通过URL打开Eclipse Rich Client Platform应用程序(4)

时间:2011-02-17 IBM Brian Fleming

处理 TCP 请求

TCP 客户机与服务器之间如何通信?假定 RCP 应用程序和 TCP 服务器已在运行。正如我们已经说明的那样,注册表和批处理文件将处理 TCP 客户机的启动。URIClient 将移除参数(即,claim=25222)并将尝试在客户机和服务器已知的端口号上建立与 URIServer 之间的套接字连接。

现在连接已建立,服务器将通过发送常量文件中存储的(客户机和服务器已知的)字符来确认客户机并请求进一步指令。在示例中,服务器将发送字符 sendAction。当客户机收到这条指令后,它将通过向服务器发送包含所需业务对象的信息的名称-值对 — 在本例中为 “claim=25222” — 进行响应。此时,客户机和服务器将终止它们的连接。当然,只要服务器已知要接收的内容,就可以自定义要发送的特定名称-值对。

现在该由 TCP 服务器解析实参并启动相应的操作。

在理想情况下,上述 TCP 客户机和服务器都可以由 RCP 应用程序启动,因此不需要使用独立的 Java 应用程序并减少需要部署的工件数。只要使用 URL 触发了 RCP 应用程序,就会使用应用程序的 .exe 或批处理文件启动程序按照常规启动应用程序。但是,早在应用程序的初始化阶段,应用程序就将检查它的实例是否已在运行。如果应用程序已在运行,则 TCP 客户机将被初始化并把 URL 实参传递给在运行的 RCP 应用程序中等待收到此类通知的嵌入式 TCP 服务器。服务器将打开各自的业务对象,如上面示例所示。但是,如果 RCP 应用程序尚未运行,它将在此时继续处于打开状态,并且它将使用 URL 实参作为 RCP 程序实参以打开相应的业务对象。

如果您不能访问应用程序的早期启动代码(例如如果您要在现有应用程序之上部署插件),则可能无法在 RCP 应用程序中嵌入 TCP 客户机。鉴于此原因,本文介绍了更灵活的独立 TCP 客户机方法。

处理业务对象

如前所述,URIServerThread 将处理打开业务对象的事务。为了简单起见,在这里提供的清单中,代码将启动一个显示 URL 中提供的业务对象 ID 的对话框。在实际应用程序中,我们将执行的某些操作要有趣得多,如调用 Action,它将查找并打开提供了标识符的业务对象。

Eclipse 有一个用于管理用户界面的线程,而且某些 SWT API 方法只能通过该线程调用。由于 URIServerThread 正在作为它自己的线程运行,因此我们需要考虑到这个限制。为了使衍生(spawned)线程能够回调 Eclipse 工作台,它必须使用 Display 对象中的方法才能获得对 UI 线程的访问。如果不这样做,将在运行时抛出 ERROR_THREAD_INVALID_ACCESS 错误。

最后几步

默认情况下,单击 rcp:// 链接将打开 RCP 应用程序中的业务对象,但是 RCP 应用程序可以隐藏在其他应用程序背后,例如包含 rcp:// 链接的应用程序。为 RCP 应用程序获得焦点十分重要。在 URIServerThread 清单中,注意负责使 RCP 应用程序获得焦点的下列语句:

 s

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号