是否可以在 JSF 中集成第三方应用程序


Is it possible to integrate third party applications in JSF?

我有一个用php开发的第三方聊天应用程序。那么,如果我想将该应用程序集成到我的 JSF 应用程序中,它会起作用吗?即网页的一部分将由JSF处理,另一部分是聊天应用程序,将由PHP处理。

混合两种技术不是一个好主意。但是,如果可能的话,那怎么能做到呢?

除了从头开始开发 JSF 中的聊天应用程序之外,最欢迎其他建议[如果别无选择,我可能不得不这样做]。

不是专门针对"第三方应用程序",而是专门针对"PHP",是的,您可以在Java EE容器上运行PHP代码。到目前为止,有2个库可以在Java EE容器上读取/解析/执行PHP代码:Quercus和JSR223 + PHP-bridge。

另一种方法是在Java EE容器前面安装Apache HTTPD。这在实际生产世界中也经常这样做,以便在Java EE容器前面有一个"100%正常运行时间"的代理,以便在Java EE容器关闭以进行重新部署时显示"抱歉,此站点已关闭以进行维护,请在几分钟后返回"维护屏幕, 甚至是存在容器集群时的高级负载平衡任务。你可以毫不费力地在那里运行PHP。

无论您选择哪种方式让 PHP 与 Java EE 一起运行,将其嵌入到 JSF Web 应用程序中,请使用指向 PHP 应用程序 URL 的 HTML <iframe> 元素。要共享某些会话数据,请确保它侦听同一域,以便您可以共享 Cookie。如果有必要,将其放在同一域上还可以使JavaScript能够在iframe内容和父页面之间进行交互。

另一方面,如果您

使用正确的库,从头开始在 JSF2 中开发聊天应用程序并不难。PrimeFaces在其<p:push>展示页面上甚至有一个"本土"的聊天应用程序示例。它可能不是"先进的",但它是一个不错的开球例子。

您可以使用 <IFrame/> 标记托管该应用程序并将该应用程序包含在新的应用程序页面中

<iframe src="urlToYourChatApplicaton"></iframe>