ofbiz9框架 + oracle 11g整合开发

ofbiz9框架 + oracle 11g整合开发

转自 http://ajava.org/course/open/14640.html

转自 http://job6688.spaces.live.com/blog/cns!FA3F6195E8CF95F7!236.entry

核心提示:ofbiz默认的数据库为derby,这个当然不能在生产环境中使用,而且也不方便调试和管理。虽然ofbiz也支持很多的开源数据库,例如 mysql等,但是我们这里还是使用主流的数据库系统oracle 11g.详细的操作如下 1.更新JDBC驱动,将oracle最新的jdbc驱动copy到${ofbiz

ofbiz默认的数据库为derby,这个当然不能在生产环境中使用,而且也不方便调试和管理。虽然ofbiz也支持很多的开源数据库,例如mysql等,但是我们这里还是使用主流的数据库系统oracle 11g.详细的操作如下
1.更新JDBC驱动,将oracle最新的jdbc驱动copy到${ofbiz install dir}/framework/entity/lib/jdbc 目录下。
2.设置实体引擎( Entity Engine)的缺省数据库为oracle.在修改 ${ofbiz install dir}/framework/entity/config/entityengine.xml文件中修改配置:
   a.修改数据库连接参数:

  1. <datasource name="localoracle"  
  2.        helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"  
  3.        schema-name="ofbiz" 你的数据库schema名称   
  4.        field-type-name="oracle"  
  5.        check-on-start="true"  
  6.        add-missing-on-start="true"  
  7.        alias-view-columns="false"  
  8.        join-style="ansi">  
  9.    <read-data reader-name="seed"/>  
  10.    <read-data reader-name="seed-initial"/>  
  11.    <read-data reader-name="demo"/>  
  12.    <read-data reader-name="ext"/>  
  13.    <inline-jdbc  
  14.            jdbc-driver="oracle.jdbc.driver.OracleDriver"  
  15.            jdbc-uri="jdbc:oracle:thin:@192.168.1.154:1521:ofbiz"  ofbiz为你的数据库SID   
  16.            jdbc-username="ofbiz"  用户名   
  17.            jdbc-password="ofbiz"  密码   
  18.            pool-minsize="2"  
  19.            pool-maxsize="250"/>  
  20. /datasource>  

  b. 修改实体引擎的数据库缺省配置如下:(将datasource-name的值设置为“localoracle”)

  1.   <delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">  
  2.     <group-map group-name="org.ofbiz" datasource-name="localoracle"/>  
  3.     <group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>  
  4. delegator>  
  5. <delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">  
  6.     <group-map group-name="org.ofbiz" datasource-name="localoracle"/>  
  7.     <group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>  
  8. delegator>  
  9.   
  10.   
  11. <delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">  
  12.     <group-map group-name="org.ofbiz" datasource-name="localoracle"/>  
  13.     <group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>  
  14. delegator>  
  15. <delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">  
  16.     <group-map group-name="org.ofbiz" datasource-name="localoracle"/>  
  17. delegator>  

3.补充:在进行以上配置时,请确保你已经存在ofbiz的数据库,实例,用户等都已创建好。

4. 初始化数据和导入:   
     ofbiz$ java -jar ofbiz.jar -install
通过以上命令即可进行数据库的初始化和初始数据的导入,这里包括了ofbiz自带的例子,应用的所有的数据表和初始化数据

5.问题:
在使用oracle数据库时,当前的版本可能会碰到ORA-01843:无效的月份的问题      

    以sys用户登陆并创建Trigger:

  1. create or replace TRIGGER ON_CONNECT AFTER LOGON ON DATABASE  
  2.  DECLARE  
  3.  guser varchar2(30);   
  4.  begin    
  5.   SELECT sys_context('USERENV','SESSION_USER'into guser FROM dual;   
  6.      if (guser='ofbiz' or guser='OFBIZ'THEN  
  7.         EXECUTE IMMEDIATE 'alter session set nls_timestamp_format = ''YYYY-MM-DD HH24:MI:SS.FF''';   
  8.      end if;   
  9.  end;  

注意对登陆用户名的判断必须大小写都要考虑.

另:ofbiz用户不能拥有dba的权限,同时ofbiz用户比需要有UNLIMITED TABLESPACE的权限,否则在创建数据表的时候会报“数据库空间不足”的错误,导致无法创建表。

6.参考:
http://blog.csdn.net/blieveme/archive/2007/10/16/1826604.aspx
http://docs.ofbiz.org/display/~jacopoc/OFBiz+and+Oracle

ajava.org补充:
OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。    
OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎,   服务引擎,   消息引擎,   工作流引擎,   规则引擎等。

你可能感兴趣的:(ofbiz)