专注于企业信息化建设

OpenERP群:192766793 OFBIZ群:323570090
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Ofbiz初探

Posted on 2013-06-19 16:43  shardon  阅读(516)  评论(0编辑  收藏  举报

转:http://xmmartin.blog.51cto.com/2310947/771236

主导建设一个电子商务系统
希望从Ofbiz了解中获得一些借鉴
1.下载ofbiz,目前的版本是10.04,下载地址
readme.txt查看
2.开始
   下载后解压,在解压后的目录中找到readme.txt,
    系统中需要安装有JDK1.6以上的版本,注意是JDK,不是JRE
3.编译
    Linux:./ant run-install
    Windows:ant run-install    
4. 运行
    编译完成后,运行
    Unix类系统:startofbiz.sh
    Windows:startofbiz.bat
     运行完成后
    前台查看:http://localhost:8080/ecommerce
    后台查看:https://localhost:8443/webtools
    用户名;Admin,密码:ofbiz
ant 分析暂时略过,ant不熟悉
startofbiz.sh分析
   设备各种参数,运行 ofbiz.jar文件
5 源代码分析
    开始运行文件位于 Framework->start->src->org->base->start->Start.java(解压ofbiz.jar就可以知道开始运行此文件)
    5.1 Start.java分析
         先分析运行
         Start.init();
         Start.start();// Start是一个线程
       
        //init
        读取配置文件
        初始化Classpath
        初始化LOG路径
        初始化listenerthread
        初始化StartLoaders
        
        run:启动管理监听线程,监听管理指令
        start:
     5.2   启用loader,开始loader

       读取配置文件,org/ofbiz/base/start/install.properties   

       启动loader :Framework->base->src->org->base->container->Containerloader.java
       Container先load,再start
      
      要启用的Container在  Framework->base->config->install-container.xml中定义
       一共启动的Container是   ComponentContainer,ClassLoaderContainer,EntityDataLoadContainer
      先init,再start
      
     5.3 componentContainer分析
          从 component-load.xml载入component
          都是从目录下载入多个component
         1)先从framework目录中,根据目录下的component-load.xml载入单个的component
         2)  再从theme目录,theme目录中没有component-load.xml.
              子目录中有ofbiz-component.xml,
        3) 再从application目录
       4)再从sepcialpurpose目录
       5)再从hotdeploy目录
     5.4 从ClassLoaderContainer
    5.5  从EntityDataLoadContainer, Start()函数 从DelegatorFactory GetDelegator
           entity目录下 META-INF定义了 DelegatorFactoryImpl实例
           
          new GenericDelegator
          中间从StringUtil中打印OWASP内容
          ModelReader
         从EntityEngine.xml中取出DelegatorInfo 取default delegator
         载入Entity
         entity检查
         help
         datasource检查
    deleagator生成结束
    initEntityEcaHandler