OFBIZ10.04开发环境筹建
发布时间: 2012-11-15 15:16:13 作者: rapoo
OFBIZ10.04开发环境搭建
转自?http://www.haogongju.net/art/1363101
OFBIZ10.04开发环境搭建(ofbiz+mysql+eclipse)1.下载安装 JDK1.6,并设置环境变量?
在“我的电脑”上点右键—>“属性”—>“高级”—> “环境变量(N)”。?
新建系统变量JAVA_HOME:C:\Program Files\Java\jdk1.6.0_31?
在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin;?
http://download.oracle.com/otn-pub/java/jdk/6u31-b05/jdk-6u31-windows-i586.exe(Win 32位)
2.安装mysql数据库(下面链接,找适合自己系统的)?
? 建立一个数据库ofbiz。新建一个用户ofbiz和密码ofbiz,并且赋予ofbiz全部权限。?
? 都设置ofbiz,是为了偷懒,就搞成跟ofbiz里面的配置一样,如果有其他需求,自行?
? 设置,只要与ofbiz数据库访问配置一样就行。?
? http://dev.mysql.com/downloads/mysql/5.1.html?
??
3.下载apache-ofbiz-10.04.zip????????????????????????????????????
? http://mirror.bjtu.edu.cn/apache/ofbiz/apache-ofbiz-10.04.zip?
4.集成开发工具eclipse(java环境要加进来)?
? 解压ofbiz10.0.4到eclipse工作目录下,打开eclipse载入ofbiz10.04?
5.更新JDBC驱动,将mysql的jdbc驱动拷贝到${Ofbiz_Home}/framework/entity/lib/jdbc 目录下。?
如果忘记了驱动,安装的时候,会报如下错误:?
???? [java] Exception: java.lang.ClassNotFoundException?
???? [java] Message: Cached loader got a known bad class name:com.mysql.jdbc.Driver?
???? [java] ---- stack trace ------?
6.设置实体引擎(Entity Engine)的默认数据库为mysql.对${Ofbiz_Home}/framework/entity/config/entityengine.xml配置文件进行修改:?
? i.默认的数据库为derby,所以要把localderby改成MySql?
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">?
??????? <group-map group-name="org.ofbiz" datasource-name="localmysql"/>?
??????? <group-map group-name="org.ofbiz.olap" datasource-name="localmysql"/>?
??????? <group-map group-name="org.ofbiz.tenant" datasource-name="localmysql"/>?
??? </delegator>?
??? <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">?
??????? <group-map group-name="org.ofbiz" datasource-name="localmysql"/>?
??????? <group-map group-name="org.ofbiz.olap" datasource-name="localmysql"/>?
??????? <group-map group-name="org.ofbiz.tenant" datasource-name="localmysql"/>?
??? </delegator>?
??? <!-- be sure that your default delegator (or the one you use) uses the same datasource for test. You must run "ant run-install" before running "ant run-tests" -->?
??? <delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">?
??????? <group-map group-name="org.ofbiz" datasource-name="?localmysql?"/>?
??????? <group-map group-name="org.ofbiz.olap" datasource-name=" localmysql "/>?
??????? <group-map group-name="org.ofbiz.tenant" datasource-name=" localmysql "/>?
</delegator>?
? ii. 修改实体引擎的默认数据库的配置信息?
<datasource name="localmysql"?
??????????? helper-<!-- 现在mysql一般的引擎都是InnoDB,早在4.0时代就不推荐使用type,现在改成engine ,-->?
??????????? character-set="utf8" <!--字符集>?
??????????? collate="utf8_general_ci"><!--排序方式>?
??????????? <read-data reader-name="seed"/>?
??????????? <read-data reader-name="seed-initial"/>?
??????????? <read-data reader-name="demo"/>?
??????????? <read-data reader-name="ext"/>?
??????????? <inline-jdbc?
??????????????? jdbc-driver="com.mysql.jdbc.Driver"?
??????????????? jdbc-uri="jdbc:mysql://127.0.0.1/ofbiz?autoReconnect=true"?
??????????????? jdbc-username="ofbiz"<!-- 这里都是数据库的基本配置信息,改成自己对应的-->?
??????????????? jdbc-password="ofbiz"?
??????????????? isolation-level="ReadCommitted"?
??????????????? pool-minsize="2"?
??????????????? pool-maxsize="250" 连接池没必要搞这么多,50够了?
??????????????? time-between-eviction-runs-millis="600000"/>????????
??? </datasource>?
7.运行(CTRL+R)?
? 输入cmd进入命令模式,cd到你eclipse的工作目录workspace下项目ofbiz10.0.4的根目录(如:D:\workspace\ofbiz),输入 ant run-install进行ofbiz的数据初始。十多分钟,OK。?
安装过程出现的错误解决方案:?
1.?错误: Exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException?
????? Message: Table 'ofbiz.status_type' doesn't exist?
在5.1以及之前版本的MySQL中新建一个Table,可以这样执行:?
CREATE TABLE t (i INT) ENGINE = MYISAM;
在MySQL5.5版本中,用TYPE来指定存储引擎已经行不通,标准用法是ENGINE。?
其实早在MySQL的NN个版本之前,官方手册已经建议废弃TYPE而推荐使用ENGINE,确切说是从MySQL 4.0.18版本开始,用TYPE指定存储引擎的语法一直保留至MySQL5.1,也仅仅是为了兼容旧的数据库版本。?
从现在开始,TYPE已经被禁用,指定MySQL存储引擎的命令没有其他选择,必须使用ENGINE。?
而ofBiz是用\framework\entity\src\org\ofbiz\entity\jdbc\DatabaseUtil.java? 这个工具类生成的建表SQL,这这个工具类用到type.所以导致错误。?
将createTable方法中的?
if (UtilValidate.isNotEmpty(this.datasourceInfo.tableType)) {?
??????????? sqlBuf.append("?TYPE?");?
??????????? sqlBuf.append(this.datasourceInfo.tableType);?
??????? }?
中的TYPE修改为ENGINE?
2.?[java] Exception: java.lang.ClassNotFoundException?
???? [java] Message: Cached loader got a known bad class name:com.mysql.jdbc.Driver?
如果忘记了驱动,更新JDBC驱动,将mysql的jdbc驱动拷贝到${Ofbiz_Home}/framework/entity/lib/jdbc 目录下。?