===================ofbiz整体结构=====================
applications 目录,包含了OFBIz 核心的应用程序组件,如订单管理,电子商务存储等。
component-load.xml 文件定义了所有在OFBIZ启动时需要加载的应用程序的位置。这里的每一个组件,都是一个基于OFBIZ 构建的Web 应用程序。 所以,创建新的应用程序时,需要在该文件中添加应用程序的位置信息。但是在ofbiz\hot-deploy\目录下的应用程序不需要在component-load.xml里定义,ofbiz启动时会自动加载所有hot-deploy下的内容。

Framework 框架目录,包含OFBIZ 框架的组件,例如实体引擎和服务引擎。这是OFBIZ 框架的基础,它们负责数据访问、缓存、展示窗口、管理事务以及更多应用组件使用的低级任务。

hot-deploy 热部署目录,是另一个目录。它的组件能够被删除和自动载入。这里没有
component-load.xml 这个文件。本目录中所有的组件,都会在framework 和application 目录下的组
件被导入之后导入。
另外这个目录不需要通过component-load.xml来制定加载他们,这个目录下面符合ofbiz规则的都会被加载。

specialpurpose
殊目的的组件通常是没有取得作为OFBiz核心组件的资格。它们仅仅为一部分OFBiz用户服务。既然他们是(或者应该是)可选的,OFBiz可以(或者应该)在没有这些组件时候运行。这些组件在 ${OFBizInstallFolder}\specialpurpose目录中。

runtime
存放日志,web服务器等
===================ofbiz组件结构=====================

ofbiz组件可能包含配置文件、种子数据定义、实体定义、流程逻辑、服务定义、Java代码、web应用和视图定义。

一个ofbiz组件结构大概类似于以下的样子 :

build(编译后的类目录) 
config 
data 
entitydef 
script 
servicedef 
src 
webapp 
  --component name(一般是该组件的名字) 
    --error
    --WEB-INF 
      --actions 
      --controller.xml 
      --web.xml 
widget 
build.xml 
ofbiz-component.xml 

build目录是已经编译的java代码和任何java库。他们能够使这个应用程序运行,但不能仅仅靠它运行。

build.xml文件是ant配置文件,用于测试和构建这个应用程序。

config目录包含配置文件,例如多语言下的国际化UI标签配置文件。

data目录包含种子和演示数据,xml格式。

entitydef目录,包含这个应用程序的数据模型定义。

script脚本目录,包含业务逻辑的脚本文件。

servicedef目录,包含services服务,他们是细粒度的业务逻辑,类似于方法和函数

src源文件目录,包含实现业务逻辑java类文件。

webapp目录,是web接口,应用程序的最前端,一个ofbiz应用程序能有多个webapp应用程序

widget目录,screen定义

其中:
ofbiz-component.xml文件指出该应用程序数据模型(<entity-resource>),商业逻辑(<service-resource>),web应用程序(<webapp.../>)的位置,改应用的基本权限也在该文件的webapp里通过base-permission限制
web.xml 文件用来配置main servlet(s),控制后台服务器(如tomcat server),及一些相关参数。
controller.xml文件负责控制接收到的请求request。任何到来的请求,无论是屏幕请求,还是服务请求或事件请求,都要经过controller.xml的处理,然后转交给相应的相应的部分处理。
此外:
在ofbiz中,通过特殊的url来引用组件,url是component://<component-name>/relative-path
<component-name>是OFBiz中任何组件的名称。
组件的名字是定义在ofbiz-component.xml中的。
每个组件都有自己的ofbiz-component.xml