必备软件
Jdk7
文件名:java_ee_sdk-6u4-jdk7-windows.exe
eclipse
MySQL Installer 5.6 for Windows
MySql Connectors
文件名:mysql-connector-java-gpl-5.1.35.msi
.Net Framework 4.0
文件名:dotNetFx40_Full_x86.exe
OfBiz13.07.01
apache-ofbiz-13.07.01.zip
安装
安装和设置JAVA环境
新建系统变量JAVA_HOME:C:\Program Files (x86)\Java\jdk7
系统变量Path的值加入内容:%JAVA_HOME%\bin;
安装MySql数据库
依赖于:
Microsoft .NET Framework 4 Client Profile
dotNetFx40_Client_setup.exe
Microsoft Visual C++ 2013 Redistributable Package (x86 or x64)
vcredist_x86.exe
安装MySql
建立一个数据库ofbiz。新建一个用户ofbiz和密码ofbiz,并且赋予ofbiz全部权限。
集成开发工具eclipse(java环境要加进来)
解压apache-ofbiz-13.07.01.zip到eclipse工作目录下,打开eclipse载入apache-ofbiz-13.07.01
数据库安装和配置
将MySql的jdbc驱动拷贝到${Ofbiz_Home}/framework/entity/lib/jdbc 目录下。
不安装,会报如下错误:
[java] Exception: https://www.sodocs.net/doc/a36362768.html,ng.ClassNotFoundException
[java] Message: Cached loader got a known bad class name:com.mysql.jdbc.Driver
[java] ---- stack trace ------
设置实体引擎(Entity Engine)的默认数据库
配置文件:${Ofbiz_Home}/framework/entity/config/entityengine.xml
●默认的数据库为derby,把localderby改成MySql
●修改实体引擎的默认数据库的配置信息
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO" field-type-name="mysql" check-on-start="true" add-missing-on-start="true" check-pks-on-start="false" use-foreign-keys="true" join-style="ansi-no-parenthesis" alias-view-columns="false" drop-fk-use-foreign-key-keyword="true" engine="InnoDB" character-set="utf8" jdbc-password="ofbiz" isolation-level="ReadCommitted" pool-minsize="2" pool-maxsize="250" 连接池没必要搞这么多,50够了 time-between-eviction-runs-millis="600000"/>
运行OfBiz (CTRL+R)
输入cmd进入命令模式,cd到你eclipse的工作目录workspace下项目ofbiz12.0.4的根目录(如:D:\workspace\ofbiz),
安装OFBIZ演示数据:
$ ant load-demo
$ ant start
安装过程出现的错误解决方案:
1.
错误:Exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException
Message: Table 'ofbiz.status_type' doesn't exist
在5.1以及之前版本的MySQL中新建一个Table,可以这样执行:
CREATE TABLE t (i INT) TYPE = MYISAM;
或者
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: https://www.sodocs.net/doc/a36362768.html,ng.ClassNotFoundException
[java] Message: Cached loader got a known bad class name:com.mysql.jdbc.Driver
如果忘记了驱动,更新JDBC驱动,将mysql的jdbc驱动拷贝到${Ofbiz_Home}/framework/entity/lib/jdbc 目录下。