apache - CQ 和 Java EE 应用程序集成

标签 apache jakarta-ee tomcat aem

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

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

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

  2. 既然CQ没有提供OOTB session的特性,我应该如何跨CQ和Java EE容器进行session管理呢?我的意思是当我在 CQ 和 Java EE 容器之间来回切换时。

最佳答案

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

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

如果 Java 应用程序分派(dispatch)请求——同样,您必须在 Web 应用程序中编写一些逻辑来“获取”、代理并可能丰富来自 CQ 的某些页面。

最后,您可以要求网络服务器(在您的例子中是 Apache HTTPd)根据 URL 分派(dispatch)请求——例如让您的所有电子商务页面从不同的域 (sales.mycompany.com) 处理,或从 /shop/.* 提供(使用 mod_redirect) 等等等等。在 Apache 中,您将创建两个虚拟主机,一个带有 CQ Dispatcher,一个只是代理您的 webapp。我想这可能就是您要找的机器人。

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

希望对您有所帮助。如果有,请记得竖起大拇指:-)

关于apache - CQ 和 Java EE 应用程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887958/

相关文章:

java - ActiveMQ安装时出错

jakarta-ee - 在weblogic中发布EJB的本地接口(interface)

java - JBoss 中的 EJB 特化

java - Tomcat 8 中的 Atomikos,如何将 server.xml 中带有 XA 的 JDBC 资源配置为 as400?

apache - 您如何配置 Mac OS X 附带的 Apache 服务器?

apache - 使用 .htaccess 甚至对经过身份验证的用户隐藏文件

apache - 我们可以在 apache 中向 http 请求注入(inject)请求参数吗

java - 使用 EL 使用 foreach 遍历 arraylist

apache - 想要从 https URL 中删除端口号

java - 如何使用 apache tomcat 在 spring boot 中设置 root url?