OFBiz默认情况下是一组小型Web应用程序的集合,每个Web应用程序都有自己的前端控制器。 OFBiz Web应用程序通常依赖于许多通用模块。通常,特殊用途或热部署下的模块最终取决于框架和应用程序下的所有模块...使用嵌入式容器,所有库都进入Catalina共享库类加载器,但是如果需要将ofbiz部署在使用不同的容器,根本没有简单的方法。我认为唯一的选择是
将bizbiz打包为带有EAR / lib或EAR / APP-INF / lib的EAR,以便所有Web应用程序都可以访问一组通用的EAR级别类路径资源。.通常,每个模块的config,lib和所有重要的ofbiz- $ module。罐
每个webapp将每个所需的jar打包到其自己的WEB-INF / lib中。.重复过多,从某种意义上讲也增加了文件系统的占用空间
使用应用程序系统类路径代替catalina shared.lib文件夹-这意味着JVM必须专用于ofbiz,因为其jar可能会干扰其他同级部署甚至可能干扰容器本身,通常是XML,XSL, STAX API等。
鉴于ofbiz使用文件系统(ofbiz.home + component://)来重新加载大多数资源。 webapp真正需要在常规servlet上下文中访问的方式是
controller.xml
classpath资源-在shared.lib中的各个ofbiz- $ module.jar中。通常,每个模块的配置,lib和所有重要的ofbiz- $ module.jar
像其他controller.xml一样为各种模块导入了(component://)webapp资源。最重要的是framework / common / webcommon / WEB-INF / controller.xml,它提供样板安全性实现,例如checkLogin和autoLogin...。
我想知道我们是否可以使用前端控制器命名空间以某种方式将多个Web应用程序打包到单个整体式Web应用程序中,以便使战争映射到单个根内容,例如say /(tomcat上的ROOT)和/ content,/ webtools,/ catalog,/ ecommerce等。仅仅是URL名称空间/子上下文,而不是单独的Webapp。 framework / common / webcommon / WEB-INF / controller.xml可以成为/(tomcat中的ROOT)的根控制器,并向所有web应用程序提供checkLogin,autoLogin等,而每个控制器不必导入该controller.xml
当我们想移至其他容器(如weblogic,jboss等)时,这将使我们能够简化部署模型,在这种情况下,我们最好构建一个Web应用程序,并将其所有依赖项都整齐地打包到WEB-INF / lib中,例如它可以与同一容器中的其他部署共存,而不会干扰它们的依赖关系和版本...
我相信struts具有这种模块化的命名空间,其中可能存在根级别的struts.xml(我们的情况下controller.xml),并且每个模块都是一个具有自己的module / struts.xml或module / struts-module.xml等的文件夹。 ...
我个人觉得这会有所帮助。.我还没有对不利因素进行充分的考虑。可能有很多?老实说,我不知道。我也没有对主题进行足够的考虑。.开发人员显然不希望看到代码的布局或组织方式有任何更改。 :)框架中核心MVC代码的更改,我们可以使用简单的ant构建脚本来潜在地支持这种部署,该脚本将候选webapp分段为合并的整体webapp ...
我希望看到关于这个想法的优缺点的辩论...如果我得到一些指导和意见,我什至愿意花一些时间来进行这项工作。
最佳答案
您是否考虑过使用厨师来部署Ofbiz?
我写了以下食谱来证明它如何工作:
https://github.com/myspotontheweb/chef-ofbiz