有一个JSP-servlets Java EE应用程序(电子商务网站)已部署在Tomcat上。现在,我的要求是将此Java EE应用程序与Day CQ集成在一起,以显示与内容相关的静态页面。
通过混合方法,我们将所有与内容相关的内容保存在Java EE容器中的CQ和动态页面(电子商务,例如结帐)中,我面临以下挑战:
我们如何使用Apache服务器通过重定向在CQ和Java EE容器之间来回切换。 Apache将是所有请求的前端容器,根据重写规则,Apache会将请求转发到CQ或Java EE容器?任何这样的例子都是有帮助的。
由于CQ不提供OOTB会话功能,我该如何在CQ和Java EE容器之间进行会话管理?我的意思是当我在CQ和Java EE容器之间来回切换时。
最佳答案
我相信我已经为Virgin Media实施了类似的操作。基本上有三种模型可用-取决于请求哪个“ actor”进行调度。
如果CQ要进行请求分派,则您将不得不编写逻辑,其中CQ提供代理您电子商务的动态页面。似乎不适合您,因为您已经拥有Java EE实现。
如果Java应用程序调度了一个请求-同样,您必须在Web应用程序中编写一些逻辑来“获取”,代理并可能丰富CQ中的某些页面。
最后,您可以要求网络服务器(在您的情况下为Apache HTTPd)基于URL调度请求-例如使您所有的电子商务页面都从其他域(sales.mycompany.com
)处理,或从/shop/.*
提供服务(使用mod_redirect
),依此类推。然后,在Apache中,您将创建两个虚拟主机,一个虚拟主机带有一个CQ Dispatcher,一个虚拟主机只是代理您的Web应用程序。我认为这可能是您要寻找的机器人。
现在,最后一种方法的唯一问题是会话管理-因为您需要维护两个会话。但是,您是否真的需要与CQ本身进行对话-不仅与电子商务部分对话?好吧,如果您这样做,请考虑前两种方法之一。最后建议不要在Tomcat中部署CQ,这通常给我带来了许多无法解决的问题。
希望能帮助到你。记住要竖起大拇指:-)
关于apache - CQ和Java EE应用程序集成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17887958/