1 Ofbiz观点&评价
1.1 正面观点
首先 Ofbiz 是开源的,集成了很多优秀的开源技术: Ant , Freemarker , Jboss 等等。 其次功能强大,拥有已经开发好的,并且稳定的工作流引擎,用户权限系统,前台电子商务系统,后台订单处理,库存管理系统,客户管理等等。 |
Ofbiz提供了一套基于JAVA的功能扩展方案,可以在目前最基本的功能上添加新的功能。并且基于Component组件开发,对于不需要的功能可以将相应Component去除掉。 |
用OFBiz开发时不用频繁地重启服务器,一些文件修改后下一次访问时可直接与未改文件"会师",用为数不多的代码实现一些基本功能. ... 还有一个大大的优点:OFBiz把PHP世界编程里的方便快捷与Java世界编程里的层次分明给很好地结合了起来,这个我已感觉到了. |
1.2 负面观点
虽然说Ofbiz提供了一整套功能扩展方案,但是其过程十分繁琐。 实现一个最简单的功能(比如读取一张用户表的信息),需要进行配置的文件就有十几个。 对于数据库的操作进行了非常强大的封装,拥有Ofbiz引以为傲的Entity Engine(有点像Hibernate,不过比Hibernate还要猛,一句SQL语句都不用)。只需要在相应Component的 entityengine.xml对要操作的实体(对应表)进行定义,并且定义在特定服务中的增删改查方法即可。这样说好像很好用的样子,但是实际上,需要付出非常多的时间和精力去学习这套东西,并且学习曲线会很大。 |
Ofbiz本身自带的功能如果不符合我们自己的需求,基本上很难进行修改,而是应该重新开发对应的功能。比如它的Order Processing跟目前我们公司的订单管理存在很大的差距。所以我们必须重构。而这都需要付出很大的代价。我们考虑使用Ofbiz的原因主要是想要在其强大功能的基础进行快速的扩展,但是如果很多功能都需要重构的话,那么就得不偿失了。 |
2 环境配置
参考地址:http://blog.csdn.net/xiaoliouc/article/details/10223095 ofbiz12.04环境搭建
http://blog.csdn.net/hezhipin610039/article/details/24289317 如何让OFBIZ使用中文界面
托管外网服务器:219.232.239.9 root/!@#$%QWERThpv
2.1 ofbiz下载&安装
Ø 1.下载ofbiz
ofbiz下载地址:http://ofbiz.apache.org/download.html
下载apache-ofbiz-12.04.02.zip,解压安装到目录h:\ofbiz,目录结构如下:
Ø 2.安装配置ant,用于安装可运行的ofbiz包,如下:
取得ant安装包apache-ant-1.8.1-bin.tar.gz,解压缩到安装目录(如:E:\开发安装工具\apache\apache-ant-1.8.1),配置环境变量:
Ø 3.Mysql数据库配置
更新JDBC驱动,将mysql的jdbc驱动拷贝到${Ofbiz_Home}/framework/entity/lib/jdbc 目录下。
如果忘记了驱动,安装的时候,会报如下错误:
[java] Exception:java.lang.ClassNotFoundException
[java] Message: Cachedloader got a known bad class name:com.mysql.jdbc.Driver
[java] ---- stack trace------
2).设置实体引擎(Entity Engine)的默认数据库为mysql.对${Ofbiz_Home}/framework/entity/config/entityengine.xml配置文件进行修改:
将红色标识处改为localmysql
本地安装mysql,创建数据库ofbiz,根据mysql的的配置修改,修改红字标识处为“utf8、utf8_general_ci,xx,root,root,50”,
Ø 4.构建、运行服务器
//安装OFBIZ演示数据:大约需要15分钟
>ant load-demo
运行成功后,将自动根据连接数据库ofbiz,创建相应的数据库对象。
继续,启动OFBiz:
>ant start
启动后,控制台不断刷新信息,应该是在执行一些定时任务之类的程序,
Ø 5.浏览器测试访问
可用浏览器访问如下
http://localhost:8080/ecommerce/
2.2 FreemarkerEditor插件安装
2.2.1 方法1
参考地址:http://blog.csdn.net/lzkkevin/article/details/6674708
Ø 1.下载Freemarker插件
下载地址:http://sourceforge.net/projects/freemarker-ide/files/
Ø 2.将plugins下文件放到eclipse的plugins目录下,即可。
Ø 3.查看效果
2.2.2 方法2
Ø eclipse--> Help --> Install New Software --> Add --> Location 输入 http://download.jboss.org/jbosstools/updates/development/,如果只是需要freemarker编辑器,安装时只要勾选其中freemarker一个选项就行。
2.3 Groovy插件安装
参考地址:http://www.cnblogs.com/kevincollins/archive/2009/03/25/1505681.html
3 ofbiz框架
3.1 源码结构
3.1.1 目录
名称 | 描述 |
Application | 包含ofbiz核心应用程序组件:accounting(账户管理)、humanres(人力资源管理)、order(订单管理)、manufacturing(生产管理)、marketing(市场管理)、order(订单管理)、product(产品管理)、party(组织管理)、content(内容管理)、workeffort(工作成果),以及扩展应用commonext(公共扩展)、securityext(安全扩展)。Component-load.xml文件配置需要载入哪几个应用程序组件。每个组件都是基于ofbiz构建的web应用程序。 |
Framework | 框架目录,包含OFBiz框架的组件,如实体引擎、服务引擎,这是ofbiz框架的核心,其他应用程序都是基于它来构建的。Componet-load.xml文件配置需要载入哪几个框架组件 |
Specialpurpose | 专门目录,包含一些其他的应用程序,不是ofbiz核心的一部分。 |
Hotdeploy | 热部署目录。它的组件能够被删除和自动载入,本目录的所有组件,都会在framework和application目录下的组件导入后导入。 |
Runtime | 运行时数据,是指OFBIZ运行时产生的日志, 或者安装时生成的配置文件以及其他的临时文件。为什么会有运行时的数据?这个是因为目前的OFBIZ本身嵌入了tomcat,用David的原话翻译过来是 说,目前是OFBIZ里面嵌入了tomcat,而不是tomcat下面运行着OFBIZ。 |
specialpurpose | 特殊用途。里面存放OFBIZ开发人员为某些特殊 领域或者模块定制的功能,例如:pos、googleCheckout、ebay、ecommerce等等 |
themes | 界面相关的主题包。 |
tools | 工具 |
|
|
3.1.2 配置文件
名称 | 位置 | 描述 |
component-load.xml | applications目录下 framework目录下 | 文件配置需要载入哪几个应用程序组件。这里的每一个组件,都是一个基于OFBIZ 构建的Web 应用程序。 |
ofbiz-component.xml |
| 主要的配置文件,需要注意的一些东西: |
entityengine.xml | framework\entity\config\ | 实体引擎配置,主要是配置该数据的方式,如通过oracle访问,就配置一下localoracle,特别需要注意的是,在dataSource中配置中,一定要配置一个属性 - schema-name="OFBIZ",这个主要是为了在OFBiz启动时能够正常同数据库的对象进行匹配,如果没有进行配置,每次都会试图重新建立对象,会报对象名已经被占用的情况。 |
serviceengine.xml | framework\service\config\ | 服务引擎配置,这个基本上不用作太大的修改,如要必要,可在这里边进行一些参数的调优,比如访问线程数配置等。 |
3.1.3 重要类
http://blog.csdn.net/hezhipin610039/article/details/6906031
工具类主要在包org.ofbiz.core.util中。
名称 | 路径 | 描述 |
UtilProperties |
| 属性文件访问工具类 |
UtilMisc |
| Map、List对象操作工具类 |
UtilFormatOut |
| 通用格式化输出工具类(主要用在 Jsp文件或View Helper中)。 |
UtilURL |
| 得到文件流的URL地址类。 |
UtilCache |
| 缓存管理类。 |
UtilValidate |
| 通用数据输入输出数据校验(合法性和有效性)类,可任意扩展。 |
UtilDateTime |
| java.util.Date和java.sql.Date格式的日期/时间处理类。 |
StringUtil |
| 增强的字符串处理类。 |
UtilXML |
| 增强的符合JAXP & DOM 规范的XMl解析器处理工具类。 |
SiteDefs |
| 常数定义类,定义所有Web 程序用到的和环境有关的常量。 |
Debug |
| 格式化输出程序调试信息类。 |
HttpClient |
| 模拟一个HttpServlet请求类。 |
HttpRequestFileUpload |
| 接受一个通过Http上传的文件工具类。 |
SendMailSMTP |
| 符合SMTP协议的邮件发送处理类(实现发送邮件服务器的功能)。 |
DatabaseUtil | \framework\entity\src\org\ofbiz\entity\jdbc | 工具类生成的建表SQL |
4 Ofbiz应用访问路径
url路径 | 说明 |
http://localhost:8080/ecommerce/ | 电商网站demo |
http://localhost:8080/webtools/ | 可访问到后台页面(登陆名为admin 密码为ofbiz |
5 Ofbiz扩展
5.1 Ecommerce中文化
参考地址:http://blog.csdn.net/hezhipin610039/article/details/24289317
1.修改framework\common\config\general.properties,修改如下:
country.geo.id.default=US --》CHN
currency.uom.id.default=USD --》CNY
locale.properties.fallback=en -》zh_CN
2. 登录ofbiz后台http://localhost:8080/webtools/ @admin/ofbiz
找到目录管理->店铺->编辑店铺,找到本地化,设置语言为zh,货币为CNY即可,如图:
3. 后台中文化
找开文件:framework\common\widget\CommonScreens.xml
找到GlobalDecorator,在<actions>之后加入
<scriptlocation="component://common/webcommon/
WEB-INF/actions/includes/setLocale.groovy"/>
在framework\common/webcommon/WEB-INF/
actions/includes/下建文件setLocale.groovy
在setLocale.groovy中写入以下代码
org.ofbiz.base.util.UtilHttp.
setLocale(request,"zh_CN");
5.2 修改前台和后台的访问端口
http://tristan1.iteye.com/blog/359892
ofbiz\framework\base\config\ofbiz-containers.xml
ofbiz\framework\webapp\config\url.properties
5.3 电子商务软件功能手册
参见《OFBiz软件功能手册-电子商务.docx》
6 学习
6.1 相关地址
Ofbiz官网:http://www.ofbiz.org
Ofbiz中文社区:http://www.ofbizchina.com/
http://www.blogjava.net/wealupa/archive/2007/04/19/111971.html
http://www.cnblogs.com/sunsonbaby/archive/2004/11/29/70718.html
6.2 例子
6.2.1 Practice
>java -Xmx256M -jar ofbiz.jar (the -Xmx256M 命令仅保证程序有足够的内存)。
测试访问路径:
http://localhost:8080/practice/control/main http://localhost:8080/practice/control/person |
6.2.2 Hello
测试访问路径:
7 命令集
启动ofbiz命令:
>java –Xmx256M–jar ofbiz.jar
8 技巧集
8.1 ofbiz和应用服务器结合
参考地址:http://blog.csdn.net/kongqz/article/details/3738309
1. 执行如下命令,会在ofbiz根目录下生成一个setup目录
f:\ofbiz> java –Xmx256M -jar ofbiz.jar -setup tomcat6 |
2.将setup目录下生成的tomcat6中的文件覆盖到tomcat6的相应位置(根据文件名找到相应文件进行覆盖)
3、启动tomcat就可以启动你在ofbiz的hot-deploy目录中部署的相关项目了。这个时候你可以在tomcat的根目录下看到一个temp目录,下边有ofbiz/hot-deploy/下的项目所有项目的缓存文件。
8.2 使用eclipse来调试 ofbiz
参考地址:http://www.myexception.cn/eclipse/1342727.html
http://www.yuendong.com.cn/info.asp?id=150
1. Eclipse中导入ofbiz项目(mport -> existingprojects into workspace);
2. Ofbiz项目右键选择Debug as ->Debug Configuration,如下图(记得一定要与图中对照一致,不然可能出现java.util.MissingResourceException: Can't find bundle for base name错误),
Main面板:main class输入org.ofbiz.base.start.Start。
Argument面板:VM arguments里 : -Xms128M-Xmx1024M -XX:MaxPermSize=512m。
Classpath面板,去掉ofbiz (default classpath),这里边看起来应该是这样的 org.ofbiz.base.start.Start:
Bootstrap Entries:- JRE SystemLibrary(你的jdk)
User Entries:- ofbiz.jar - 你的ofbiz.jar的目录
Environment面板 选择New (variable = LC_ALL, value = C )
Source面板:Add选择Java Project,后选择你的工程就可以,因为你的源代码都在里面。
3. 通过以上配置,你可以在这里直接启动系统,并且可以debug模式启动,可以设置断点调试。
4. 配置好后,可以用如下快捷键方式,启动debug:
这样,直接以debug方式运行调试,不用再在控制台上费劲的查看信息了。
8.3 Eclipse控制台console行数增大,方便查看更多信息
Preferences-〉Run/Debug-〉Console里边,去掉对Limit console output的选择,或者选择,设置一下buffersize的设定值
8.4 tool目录下工具命令的使用
tool目录中可使用bat、sh等命令构建或部署、执行指定任务的程序,可以自行编写脚本。
8.5 runtime目录下查看应用的运行状况
应用部署运行后,在runtime下生成服务器的工作目录,运行时的日志信息,运行或调试时可以查看,方便跟踪解决问题。
9 问题集
9.1 注意项
1. 在配置一个OFBiz时,路径中千万不要包含空格,要不然老提示出错,无外乎是scoket write error之类的信息,会让你郁闷得不停^_^。
2. 按《ofbiz教程》 其中有一处错误MainAppBar改为PracticeAppBar,否则会报错。
9.2 问题
9.2.1 The methodgetContextPath() is undefined for the type ServletContext
9.2.2 引入类文件报错The declared package "org.ofbiz.hello"does not match the expected package ""
解决方法: