安装部署ofbiz 16 11 02
昨天收到一份ofbiz更新的到16.11.02版本的邮件,刚好有空准备部署一个玩玩看。
一、安装环境:
1.已安装装了mysql数据库,并且创建数据库ofbiz。
2.jdk8
二、下载ofbiz
官网下载ofbiz:Download Apache OFBiz 16.11.02
三、安装部署ofbiz
1. 解压ofbiz至指定目录。
2.修改配置文件,配置管理本地数据库。
设置实体引擎(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-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" <!-- 现在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>
3.编译项目
点击解压目录下的gradlew.bat文件,会自动下载gradlew以及相关的依赖。(这个步骤花费时间最长,去了我N个小时,从早下下载到下午,中间经常卡住,关掉重新下载)
4.运行项目
输入``gradlew cleanAll loadDefault` 导入数据
输入``gradlew ofbiz` 运行项目
启动过程发现报异常了。看了异常日志是由于缺少数据库驱动包。于是将mysql驱动包放入根目录下的lib文件里面。(重复4步骤)
5.测试访问页面
### Visit OFBiz through your browser:
[Order Back Office](https://localhost:8443/ordermgr)
[Accounting Back Office](https://localhost:8443/accounting)
[Administrator interface](https://localhost:8443/webtools)
四、常见问题与解决方案
日志目录:D:\soft\apache-ofbiz-16.11.02\runtime\logs
gradlew下载的依赖目录:C:\Users\Administrator\.gradle
访问https://localhost:8443/ordermgr时报错:
Data truncation: Incorrect datetime value: '' for column 'LAST_UPDATED_STAMP' at row 1
解决方案:
驱动包最好要新版本,我之前用了mysql-connector-java-3.1.13-bin.jar,然后报该异常,然后替换为mysql-connector-java-5.1.38就没有这个异常了)
换了新版本后出现下面异常:
Caused by: java.lang.IllegalArgumentException: Template location is empty
解决方案:替换新版本mysql驱动包后,``gradlew cleanAll loadDefault` 重新导入数据启动就好了。
ERROR: Cannot do a find that returns an EntityListIterator with no transaction in place. Wrap this call in a transaction.
解决方案:暂时没解决,但是页面能正常访问了,所以暂时先不管了。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.****.net/jiangjunshow