1

有一个部署在 Tomcat 上的 JSP-servlets Java EE 应用程序(电子商务网站)。现在我的要求是将这个 Java EE 应用程序与 Day CQ 集成以显示与内容相关的静态页面。

使用混合方法,我们在 Java EE 容器中维护 CQ 中的所有内容相关内容和动态页面(电子商务等结帐),我面临以下挑战 -

  1. 我们如何使用 Apache 服务器通过重定向在 CQ 和 Java EE 容器之间来回切换。Apache 将是所有请求的前端容器,并且根据重写规则,它将请求转发到 CQ 或 Java EE 容器?这方面的任何例子都会有所帮助。

  2. 由于 CQ 不提供 OOTB 会话功能,我应该如何跨 CQ 和 Java EE 容器进行会话管理?我的意思是当我在 CQ 和 Java EE 容器之间来回切换时。

4

1 回答 1

0

我相信我已经为 Virgin Media 实现了类似的东西。基本上有三种可用的模型——取决于哪个“参与者”请求调度。

如果 CQ 要进行请求调度,您将必须编写逻辑,其中 CQ 提供代理您的电子商务的动态页面。似乎不适合您,因为您已经有一个 Java EE 实现。

如果 Java 应用程序分派一个请求——类似地,您必须在 Web 应用程序中编写一些逻辑来“获取”、代理并可能从 CQ 中丰富一些页面。

最后,您可以要求 Web 服务器(在您的情况下为 Apache HTTPd)基于 URL 分派请求 - 例如,让您的所有电子商务页面从不同的域(sales.mycompany.com)处理,或者从/shop/.*(使用mod_redirect)等提供服务等等. 然后,在 Apache 中,您将创建两个虚拟主机,一个带有 CQ 调度程序,一个只是代理您的 webapp。我认为这可能是您正在寻找的机器人。

现在,最后一种方法的唯一问题是会话管理——因为您需要维护两个会话。但是,您真的需要与 CQ 本身进行会话吗?不仅仅是电子商务部分?好吧,如果你这样做,那么考虑前两种方法之一。并建议在 Tomcat 中部署 CQ 作为最后的手段——它通常给我带来的问题多于解决的问题。

希望能帮助到你。如果有的话记得点赞:-)

于 2013-07-27T11:32:43.747 回答