在MySql中新建opentaps
CREATE DATABASE `opentaps` /*!40100 DEFAULT CHARACTER SET utf8 */;
opentaps
修改framework\entity\config\entityengine.xml 文件
a)找到
(54行)的localderby修改为localmysql
b)找到
table_type="InnoDB" 修改为 Engine="InnoDB"
character-set="lantin1" 修改为 character-set="utf8"
collate="lantin1_general_cs" 修改为 collate="utf8_general_ci"
jdbc-uri="jdbc:mysql://127.0.0.1/ofbiz?autoReconnect=true&useOldAliasMetadataBehavior=true" 中的ofbiz修改为opentaps //opentaps为创建的数据库名字
jdbc-username="ofbiz" 和 jdbc-password="ofbiz" 中的ofbiz修改为mysql上创建了的用户名和密码
c)修改build.properties文件,把里面的内存值减小一半(如果内存是4G以上就不用修改了)
d)把 \framework\webapp\src\org\ofbiz\webapp\controlfor\ConfigXMLReader.java文件中的 81行
for (String a : url.toString().split(File.seperator)) { 中File.seperator修改为 "/"
e)打开\opentaps\opentaps\opentaps-common\build-aspects.xml文件,将以下三行注释掉
f) 如果Mysql 版本太低,会导致表无法创建, 解决方法如下
framework\entity\src\org\ofbiz\entity\jdbc下的DatabaseUtil.java
将createTable方法中的
if (UtilValidate.isNotEmpty(this.datasourceInfo.tableType)) {
sqlBuf.append(" TYPE ");
sqlBuf.append(this.datasourceInfo.tableType);
}
中的TYPE修改为ENGINE
cmd命令行,到解压后的opentaps目录中,执行ant run-install
得到
BUILD SUCCESSFUL
Total time: 22 minutes 33 seconds
修改startofbiz.bat,把内存值修改为256M,512M,512M(如果是4G内存,则不用改)
在CMD命令行中键入startofbiz.bat等待...。出现connectorservlet successful initialized说明运行成功。
在浏览器中键入:http://localhost:8080/opentaps
出现登陆界面后用户名是admin,密码是opentaps。如果密码不对的话,可以到mysql中去查看user_login表,表上有用户名和密码。
遇到问题:
ant run-install安装都没有问题,提示:BUILD SUCCESSFUL
可是启动服务时:
E:\Setup\opentaps>startofbiz.bat
E:\Setup\opentaps>echo off
E:\Setup\opentaps>"D:\Program Files\Java\jdk1.6.0_43\bin\java" -Xms256M -Xmx768M
-XX:MaxPermSize=512M -jar ofbiz.jar 1>runtime\logs\console.log
就报错:
E:\Setup\opentaps>"D:\Program Files\Java\jdk1.6.0_43\bin\java" -Xms256M -Xmx768M
-XX:MaxPermSize=512M -jar ofbiz.jar 1>runtime\logs\console.log
org.ofbiz.base.start.StartupException: Cannot start() org.ofbiz.base.container.NamingServiceContainer (Unable to locate naming service (Port already in use: 1099; nested exception is:
打开untime\logs\console.log,找到第一个错误:
L:164
2013-03-26 18:53:04,787 (main) [ DatabaseUtil.java:1061:ERROR] Unable to establish a connection with the database... Error was:java.sql.SQLException: Unable to acquire a new connection from the pool
jdbc-username="ofbiz" 和 jdbc-password="ofbiz" 中的ofbiz修改为mysql上创建了的用户名和密码
还有错,再看:
L:207
2013-03-26 19:13:08,681 (main) [ DatabaseUtil.java:353:ERROR] Could not create table [ACCOMMODATION_CLASS]: SQL Exception while executing the following:
CREATE TABLE ACCOMMODATION_CLASS (ACCOMMODATION_CLASS_ID VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PARENT_CLASS_ID VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci, DESCRIPTION VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
LAST_UPDATED_STAMP DATETIME, LAST_UPDATED_TX_STAMP DATETIME, CREATED_STAMP DATETIME, CREATED_TX_STAMP DATETIME, CONSTRAINT PK_ACCOMMODATION_CLASS PRIMARY KEY (ACCOMMODATION_CLASS_ID)) TYPE InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
Error was: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci'
at line 1
把这条长长的SQL建表语句复制到MYSQL里,看到TYPE InnoDB的TYPE下有红线,到framework\entity\config\entityengine.xml中找到
table_type="InnoDB" 修改为 Engine="InnoDB"
再执行,通过了.
收获,总结:命令行上的输出,有时候不够准确,要学会在console.log中找到错误原因.