ofbiz初级--安装与配置
- 格式:doc
- 大小:24.50 KB
- 文档页数:1
技术文档第一部分、ofbiz表现一、理解MVC模式当涉及大量商业逻辑项目的时候,我们需要考虑什么?如何分离用户界面和后台操作?如何避免将商业逻辑混淆于一般的流程控制中?作为企业信息系统,就需要考虑很多类似的问题。
源源不断的客户新需求, 要进行功能修改和扩充, 但是因为程序的高耦合,改动将变得非常困难,导致项目成本何风险增加。
而且,往往维护人员与开发人员不是同一个人,即使有详尽的文档,也很难理清程序里纵横交错的联系。
所以贯彻Model-View-Controller(MVC)模式的设计,在设计阶段首先杜绝此类问题, 是一个非常好的方法。
1、MVC理论描述所谓MVC模式,指的是一种划分系统功能的方法,它将一个系统划分为三个部分:●模型(Model):封装的是数据源和所有基于对这些数据的操作。
在一个组件中,Model往往表示组件的状态和操作状态的方法。
●视图(View):封装的是对数据源Model的一种显示。
一个模型可以由多个视图,而一个视图理论上也可以同不同的模型关联起来。
●控制器(Control):封装的是外界作用于模型的操作。
通常,这些操作会转发到模型上,并调用模型中相应的一个或者多个方法。
一般Controller在Model和View之间起到了沟通的作用,处理用户在View上的输入,并转发给Model。
这样Model和View两者之间可以做到松散耦合,甚至可以彼此不知道对方,而由Controller连接起这两个部分。
模型,即相关的数据,它是对象的内在属性;视图是模型的外在表现形式,一个模型可以对应一个或者多个视图,视图还具有与外界交互的功能;控制器是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息转化成相应事件,然后由对应的控制器对模型进行更新;相应的,模型的更新与修改将通过控制器通知视图,保持视图与模型的一致性。
下图(图1.1)描述了这三者之间的关系:2、系统设计系统属于浏览器/服务器模型(Browser/Server)。
ofbiz四种情景安装指南(hsql/mysql/oracle+tomcat/apache)一、ofbiz 用自身数据库安装1. 由 binary 安装:由 binary 安装非常简单, 以下是安装方法:下载ofbiz-2.0-beta1-complete.tar.gz, 注意不是ofbiz-2.0-beta1.tar.gz. tar xvzf ofbiz-2.0.beta1-complete.tar.gzcd tomcat/bin./ofbiz.sh startgaleon http://localhost:8080/webtools2. 由 CVS 安装:由 CVS 安装要稍微复杂一些. 由于 ofbiz 的更新非常快, 所以由 CVS 安装将获得最新功能. 以下是安装方法:mkdir ofbizln -s /PATH-TO-TOMCAT tomcatcd ofbizexport CVSROOT=:pserver:anonymous at cvs dot:/cvsroot/ofbizcvs logincvs co catalogcvs co commonappcvs co corecvs co ecommercecvs co libcvs co ordermgrcvs co partymgrcvs co setupcvs co websitecvs co webtoolscvs co workeffortcp setup/ofbiz/build.xml .cp setup/ofboz/updateall.sh .export CATALINA_HOME=PATH-TO-TOMCATexport OFBIZ_HOME=`pwd`antant install创建 postgreSQL 用户 ofbiz, 口令 ofbizcreatedb -E EUC_CN ofbizcd ../tomcat/bin./ofbiz.sh startgaleon http://localhost:8080/webtools二、安装ofbiz+tomcat+oracle这个文章描述的是安装ofbiz在oracle+tomcat环境ofbiz2.11提供的缺省的web server是jetty,由于我比较习惯tomcat,因此打算把他转移到tomcat上来。
OFBiz Tutorial - A Beginners Development GuideOFBiz教程 – 初学者的开发指南/display/OFBIZ/OFBiz+Tutorial+‐+A+Beginners+Development+GuideTranslated by hongs,contact:billhongs@Creating Practice Application (Hello World...)Written by: Pranay Pandey with feedback and contributions from Chirag Manocha, Ravindra Mandre, Rob SchapperSpecial thanks to Anil Patel and Mridul Pathak for inspiring me to write this tutorial.这教程面向OFBiz初学者。
帮助学习OFBiz应用开发流程基础。
创建这个教程背后的目的是让开发者通过最佳实践熟悉代码习惯、控制流或更多。
这个练习充当OFBiz的”Helloworld”,和由Kernighan and Richie引入的c 语言编程的第一个Helloworld一样。
重要!这教程打算使用最新的SVN版本。
不再适用于4版本。
与这个应用开发的同时,你可以看OFBiz的视频,它们在/display/OFBTECH/Framework+Introduction+Videos+and+Diagrams,Part - 1注1: 有更多的疑问,你可以参考Example组件。
你准能在OFBiz的最新代码的example组件中找到你想要的代码。
任意时候想参考例子代码,作为这个应用的开发,这些将给你未来的开发中带来帮助。
每一个新功能会第一时间加入到example组件中作为参考。
注2:在开始开发这应用前,你一定要阅读下面内容:OFBiz Contributors Best Practices(/display/OFBADMIN/OFBiz+Contributors+Best+Practices), Coding Conventions (/display/OFBADMIN/Coding+Conventions)and Best Practices Guide(/display/OFBADMIN/Best+Practices+Guide)。
ofbiz入门及安装1.Ofbiz 介绍: Ofbiz() 是 apache 的电子商务平台,充分利用了apache下的Open Source 项目,像 Tomcat, Ant, BeanShell, Jboss 等,构建了一个强大的系统平台,Ofbiz 已经完成了电子商务平台都需要的功能,像用户认证、工作流、交易规则处理等,Ofbiz 的核心技术在于 Entity Engine,其他的组件基本都是基于它的。
简单来说 Entity Engine 的主要功能是将数据库表创建、对象与数据表的映射、对象的查询等做了强大封装,你可以在一个简单的 XML 文件中定义数据库表结构,Ofbiz 会自动帮你在数据库建表,并动态生成映射对象,你在程序中可以只考虑对 Object 的处理,Ofbiz 会自动通过事务逻辑更新到数据库中。
Ofbiz 宣称的优点之一是用很少的 Code 完成复杂的处理。
2.Ofbiz 下载与安装首先要安装 J2SDK1.6,到 上下载,安装后设定 JAVA_HOME 环境变量为 J2SDK 的安装目录。
访问网站,上面有下载的连接,请选择对应最新的稳定版本,下载下来解开后就可以运行了。
3.ofbiz 配置mysql数据库首先在 MySQL 创建数据库 ofbiz。
更新JDBC驱动,将mysql的jdbc驱动copy到${ofbiz-install-dir}/framework/entity/lib/jdbc 目录下。
设置实体引擎( Entity Engine)的缺省数据库为mysql.在修改 ${ofbizinstall dir}/framework/entity/config/entityengine.xml文件中修改配置:修改数据库连接参数:<datasourcename="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"table-type="InnoDB"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-jdbcjdbc-driver="com.mysql.jdbc.Driver"jdbc-uri="jdbc:mysql://localhost:3306/ ofbiz?autoReconnect=true" --数据库名jdbc-username="root" --用户名jdbc-password="" --密码isolation-level="ReadCommitted"pool-minsize="2"pool-maxsize="250"time-between-eviction-runs-millis="600 000"/><!-- ####--><!-- <jndi-jdbcjndi-server-name="localjndi"jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/>--></datasource>修改实体引擎的数据库缺省配置如下:将datasource-name的值设置为local mysql:<!-- the connection factory class to use, one is needed for obtaining connections/pools for defined resources --><connection-factoryclass="org.ofbiz.entity.connection.DBCPConnectionFactory"/><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"/> </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"/> </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"/> </delegator><delegator name="other"entity-model-reader="main"entity-group-reader="main"entity-eca-reader="main"><group-map group-name="org.ofbiz"datasource-name="local mysql"/> </delegator>4.ofbiz编译和运行打开dos并在ofbiz9 目录下执行命令:ant run-install (该命令用来预置默认数据库,编译java code) startofbiz.bat启动成功,可以打开以下界面:http://localhost:8080/ecommerce;https://localhost:8443/webtools;。
技术文档第一部分、ofbiz表现一、理解MVC模式当涉及大量商业逻辑项目的时候,我们需要考虑什么?如何分离用户界面和后台操作?如何避免将商业逻辑混淆于一般的流程控制中?作为企业信息系统,就需要考虑很多类似的问题。
源源不断的客户新需求, 要进行功能修改和扩充, 但是因为程序的高耦合,改动将变得非常困难,导致项目成本何风险增加。
而且,往往维护人员与开发人员不是同一个人,即使有详尽的文档,也很难理清程序里纵横交错的联系。
所以贯彻Model-View-Controller(MVC)模式的设计,在设计阶段首先杜绝此类问题, 是一个非常好的方法。
1、MVC理论描述所谓MVC模式,指的是一种划分系统功能的方法,它将一个系统划分为三个部分:l 模型(Model):封装的是数据源和所有基于对这些数据的操作。
在一个组件中,Model往往表示组件的状态和操作状态的方法。
l 视图(View):封装的是对数据源Model的一种显示。
一个模型可以由多个视图,而一个视图理论上也可以同不同的模型关联起来。
l 控制器(Control):封装的是外界作用于模型的操作。
通常,这些操作会转发到模型上,并调用模型中相应的一个或者多个方法。
一般Controller在Model和View之间起到了沟通的作用,处理用户在View上的输入,并转发给Model。
这样Model和View两者之间可以做到松散耦合,甚至可以彼此不知道对方,而由Controller连接起这两个部分。
模型,即相关的数据,它是对象的内在属性;视图是模型的外在表现形式,一个模型可以对应一个或者多个视图,视图还具有与外界交互的功能;控制器是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息转化成相应事件,然后由对应的控制器对模型进行更新;相应的,模型的更新与修改将通过控制器通知视图,保持视图与模型的一致性。
下图(图1.1)描述了这三者之间的关系:2、系统设计系统属于浏览器/服务器模型(Browser/Server)。
概论指南入门本指南帮助BI.Office使用人员了解系统的结构,逐步熟悉BI.Office产品的安装及部署。
使用下表快速访问BI.Office安装配置指南:文档规范下列规范用于在BI.Office安装配置指南中区分文本元素。
采用醒目标志来表示在操作过程中应该特别注意的地方,这些标志的意义如下:注意:提醒操作中应该注意的事项说明:对操作内容的描述进行必要的补充和说明对读者的要求本指南的读者对象为BI.Office的高级使用者。
他必须具备以下条件:(1)有大型数据库系统维护的经验。
(2)熟悉数据库的安装和配置。
(3)熟悉一些应用服务器的安装和部署。
安装摘要安装摘要BI.Office安装有两种办法:●默认安装:默认安装包仅供在Windows操作系统上使用,用户点击BI.Office.exe进行安装,根据向导一步步操作即可完成安装部署。
默认安装使用Tomcat作为应用服务器、使用MySQL作为知识库(带示例数据),安装完毕通过配置工具指定License后即可登录使用。
该方法适用于初次试用BI.Office产品或者是无特殊应用服务器和知识库要求的用户。
●手动安装:手工安装包可在Windows或Unix / Linux等操作系统上使用。
根据实际项目需要选择应用服务器(Tomcat / JBoss / Weblogic / WebSphere)和知识库(MySQL / HSQL / Oracle / DB2),由用户手工将bioffice.war应用包部署到应用服务器上,再通过配置工具手动配置知识库和指定License后登录使用。
该方法适用于有其他应用服务器或知识库要求的用户。
要成功的使用BI.Office,请关注如下步骤:●创建知识库:选择BI.Office默认安装使用MySQL作为知识库,也可以选择手工配置其他知识库(如HSQL或Oracle)。
●增加JDBC驱动:BI.Office的war包中没有包含所有支持的数据库JDBC驱动程序,所以需要根据实际情况手工增加相应版本的数据库驱动程序,并清除多余的相关驱动文件。
OFBiz快速入门原文URL:https:///OFBIZ/ofbiz-tutorial-a-beginners-development-guide.html一个大厦能够建多高,是由其基础决定的;一个软件能够’容纳‘多少功能,是由其架构决定的。
一个优秀的架构能够容许很多工程师协同合作,长期不断累积功能;反之,一个脆弱的架构则捆绑住工程师的手脚,每添加一个功能都是困难重重,涉及到很多人的交互,效率非常低下,长期维护也是非常麻烦,代价很高,到一定程度就遇到天花板,无法再加入功能了。
OFBiz(Open For Business)现在关于OFBiz的所有相关的信息,大部分都是英文的,可能,在当下的IT 江湖里,OFBiz还没有引起ITer或IT公司的广泛关注,也只是部分群体在学习与研究。
当然,OFBiz的发展也是想当得快的,毕竟每天都有人commit代码,但是,版本的频繁发布,如果不能前后维持一个统一的技术架构和一个一致的编程开发模式,就会导致基于某些版本的OFBiz的系统应用不能很好的升级,留下了维护与移植的痛苦,其次就是现在的OFBiz框架本身就灰常的膨大,如果是一般的小型应用,真的有点杀鸡用牛刀的感觉了,不过由于OFBiz提供了一种可插拔的机制,也可以剔除一些不相关的应用。
可能也是当前没有什么人愿意花时间成本去研究的原因!(当然,原因肯定是多方面的!也不用去细究了!一切还是得源自自我爱好!要不然,都是胡扯!)下面的文字,都是自己用烂掉牙的英语翻译能力翻译的,定会存在不少纰漏与错误!请大伙们多多指点了!有些地方,如果自己找不到很好的中文表述,我会加上英语原文的!这个教程被分为6个部分,也是一个由浅入深的过程。
第一部分NOTE1:这里的代码很多都会来自Example组件。
你会经常找到有关最新的OFBiz代码在Example组件中。
无论在什么时候你为这个应用去看一些简单代码,都应该应用Example组件,这个能帮助你在OFBiz上开发的更好!每当有新特性出现,都会被优先加到Example组件中作为参考范例。
OFBIZ学习一、ofbiz之Hello World⏹下载OFBIZ并配置到当地⏹下载地址:解压(安装)OFBIZ:配置到当地:运行命令行: (cmd)进入到安装目录(即解压旳目录):在安装目录下运行命令: ant load-demo注: 版本较低旳命令也许是 ant run-install⏹安装成功后运行命令: java -jar ofbiz.jar导入到IDE(Eclipse)中:直接import安装目录, 将整个ofbiz导入到eclipse中1.新建练习项目:2.在hot-deploy目录下新建practice目录(apache-ofbiz-12.04.02\hot-deploy\practice)在practice目录下新建webapp、widget目录, 然后新建ofbiz-component.xml文献(apache-ofbiz-12.04.02\hot-deploy\practice\webapp)(apache-ofbiz-12.04.02\hot-deploy\practice\wid)(apache-ofbiz-12.04.02\hot-deploy\practice\ofbiz-component.xml)注: ofbiz-component.xml可直接从(apache-ofbiz-12.04.02\specialpurpose\example)下拷贝后来所有需要新建旳文献都直接从示例中拷贝, 然后进行修改。
代码如下:3.在webapp下新建practice目录(hot-deploy/practice/webapp/practice)4.在第二个practice下新建WEB-INF目录(hot-deploy/practice/webapp/practice/WEB-INF)注: 第一种practice是我们旳组件名, 第二个practice是我们旳应用名5.在下面我们不再使用第一种第二个这种说法, 会直接说组件(component)或应用(webapp)6.在WEB-INF下新建web.xml与controller.xml文献(去拷贝过来)先修改web.xml文献, 在ofbiz 中web.xml配置文献遵守j2ee旳规范, 与j2ee旳配置文献类似。
ofbiz各配置文件作用以及工作流程1.当客户端发出请求时,调用第一个配置文件WEB-INF/controller.xml,根据请求的地址处理方法1:直接调用java类的方法<request-map uri="login"><security https="true" auth="false"/><event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/><response name="success" type="view" value="main"/><response name="error" type="view" value="login"/></request-map>如果为login,会查找path="org.ofbiz.webapp.control.LoginWorker"这个类的invoke="login"这个方法进行处理处理方式2:通过service配置文件取查找对应的service(常用)<request-map uri="createForum"><security https="true" auth="true"/><event type="service" path="" invoke="createForum"/><response name="success" type="view" value="FindForum"/><response name="error" type="view" value="FindForum"/></request-map>表示调用的类型为type="service"调用的方法为invoke="createForum"2.进入servicedef/services.xml,这是service的配置文件从里面找到上面对应的配置信息<service name="createForum" default-entity-name="GroupForum" engine="simple"location="org/ofbiz/group/GroupServices.xml" invoke="createForum" auth="true"> <description>Create a GroupForum</description><permission-service service-name="exampleGenericPermission" main-action="CREATE"/><auto-attributes include="pk" mode="OUT" optional="false"/><auto-attributes include="nonpk" mode="IN" optional="true"/><override name="forumName" optional="false"/></service>文件配置的createForum这个文件实现的相关信息location="org/ofbiz/group/GroupServices.xml"表示实现是通过minilanguage配置文件3.进入script下面的org/ofbiz/group/GroupServices.xml文件通过minilanguage配置文件<simple-method method-name="createForum" short-description="create a GroupForum"> <make-value entity-name="GroupForum" value-name="newEntity"/><sequenced-id-to-env sequence-name="GroupForum" env-name="newEntity.forumId"/> <!-- get the next sequenced ID --><field-to-result field-name="newEntity.forumId" result-name="forumId"/><set-nonpk-fields map-name="parameters" value-name="newEntity"/><create-value value-name="newEntity"/></simple-method>配置了对entity-name="GroupForum"实体的创建的相关信息和操作,该步骤可以用java代码实现.4.进入实体配置文件部分entitymodel.xml<entity entity-name="GroupForum" package-name="org.ofbiz.group" title="GroupForum Entity"> <field name="forumId" type="id-ne"><!-- primary sequenced ID --></field><field name="forumName" type="name"></field><field name="description" type="description"></field><field name="authorID" type="id"></field><field name="created" type="date-time"></field><prim-key field="forumId"/></entity>配置了entity-name="GroupForum" 的实体与数据库映射文件entitygroup.xml<entitygroup xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="/dtds/entitygroup.xsd"> <entity-group group="org.ofbiz" entity="GroupForum"/><entity-group group="org.ofbiz" entity="GroupCategory"/><entity-group group="org.ofbiz" entity="GroupThread"/><entity-group group="org.ofbiz" entity="GroupPost"/></entitygroup>配置了实体名称的组5.service执行成功后会返回到展现逻辑配置部分,也就是WEB-INF/controller.xml中<request-map uri="login"><security https="true" auth="false"/><event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/><response name="success" type="view" value="main"/><response name="error" type="view" value="login"/></request-map>现在会请求到main中,<view-map name="main" type="screen"page="component://group/widget/group/CommonScreens.xml#main"/>在WEB-INF/controller.xml中找到main的配置信息该显示用screen配置显示component://group/widget/group/CommonScreens.xml#main6.现在根据地址找到配置文件component://group/widget/group/CommonScreens.xml#main表示该文件中name为main的screen<screen name="main"><section><actions><set field="titleProperty" value="OrderOrderTaskList"/><set field="headerItem" value="tasklist"/><scriptlocation="component://order/webapp/ordermgr/WEB-INF/actions/task/ordertasklist.bsh"/> </actions><widgets><decorator-screen name="main-decorator"><decorator-section name="body"><container style="screenlet"><container style="screenlet-header"><label style="boxhead" text="Main Page"/></container><container style="screenlet-body"><section><condition><if-empty field-name="userLogin"/></condition><widgets><container><label text="${uiLabelMap.ExampleMessage}"/></container></widgets></section><container><label text="${uiLabelMap.Welcome}"/></container></container></container></decorator-section></decorator-screen></widgets></section></screen><screen name="login"><section><widgets><decorator-screen name="main-decorator"><decorator-section name="body"><platform-specific><html><html-template location="component://common/webcommon/login.ftl"/></html> </platform-specific></decorator-section></decorator-screen></widgets></section></screen></screens>该配置文件配置了显示的数据以及显示的格式其中数据是通过.bsh文件和service提供的,而显示的格式为ftl文件提供的7.进入group\webapp\group\WEB-INF\actions\forum在bsh为beansheel配置文件,语法与java类似,在这儿是为了提供显示数据import java.util.*;import java.io.*;import org.ofbiz.entity.*;import org.ofbiz.base.util.*;security = request.getAttribute("security");delegator = request.getAttribute("delegator");userLogin = session.getAttribute("userLogin");person = null;if (userLogin != null ) {person = userLogin.getRelatedOne("Person");}forumId = request.getParameter("forumId");categoryId = request.getParameter("categoryId");if ( categroyId == null ||UtilValidate.isEmpty(categoryId) ){categoryId = delegator.getNextSeqId("GroupCategory");}groupCategory = delegator.findByPrimaryKey("GroupCategory", UtilMisc.toMap("categoryId", categoryId));context.put("forumId", forumId);context.put("categoryId", categoryId);context.put("groupCategory", groupCategory);context.put("person", person);该文件把需要的数据放到返回的上下文中8.进入到group\webapp\group\forum\listForum.ftl该文件为Freemarker的文件,作用是代替jsp作显示层<#if forums?has_content>Some of the famous celebrities who have visited our site:<table><ul><#list forums as forum><tr><li><td><a href="EditForum?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> <td>12 ${forum.forumName?if_exists}</td><td> ${forum.description?if_exists}</td><li><td><a href="deleteForum?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> </tr><tr><li><td><a href="FindCategory?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> <td><a href="EditCategory?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> <td> </td><li><td></td></tr></#list></ul></table></#if>通过一些表达式和判断把数据显示出来,这样整个请求完毕其他配置文件的作用:data目录下的配置文件:<entity-engine-xml><UserLogin userLoginId="DemoBuyer"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoRepAll"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoRepStore"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoCustCompany"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoCustAgent"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoCustomer"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="supplier" partyId="externaluser"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLoginSecurityGroup groupId="ORDERSUPPLIER_LTD" userLoginId="supplier" fromDate="2001-01-01 12:00:00.0"/></entity-engine-xml>配置了系统启动时后需要添加的一些数据config目录下的配置文件:为国际化配置信息<property key="OrderCaughtExceptionOnCartUpdate"><value xml:lang="en">Caught exception on cart update. </value><value xml:lang="es">Excepción capturada en la actualización del carro.</value><value xml:lang="fr">%Exception attrapée dans la mise à jour du chariot. %</value><value xml:lang="it">Eccezione sull'aggiornamento carrello. </value><value xml:lang="ro">Exceptie la actualizarea cosului. </value><value xml:lang="zh">更新购物车时发生意外情况</value></property>widget里面的form配置文件:<form name="OrderPurchaseProductOptions" type="single"target="OrderPurchaseReportProduct.pdf" title="" extends="OrderPurchaseReportOptions"> <field name="fromOrderDate" title="${uiLabelMap.OrderReportFromDate}"><date-timetype="timestamp"/></field><field name="thruOrderDate" title="${uiLabelMap.OrderReportThruDate}"><date-timetype="timestamp"/></field><field name="submitButton" title="${monRun}"widget-style="smallSubmit"><submit button-type="button"/></field></form>配置了一些表单信息,和screen一样,但是他可以直接显示数据不需要使用Freemaerker的文ftl文件作页面布局,根据配置信息可以直接生成ofbiz-componet.xml文件配置了项目要加载的配置文件的信息,它可以告诉OFBIZ应用程序组件的相关信息:数据模型,商业逻辑,用户接口,种子数据,以及其他程序需要的资源。
Ofbiz(Open for business), 开源的电子商务系统,基于JAVA开发,功能强大,可扩展性强。
1.为什么使用Ofbiz呢?首先Ofbiz 是开源的,集成了很多优秀的开源技术:Ant , Freemarker , Jboss 等等。
其次功能强大,拥有已经开发好的,并且稳定的工作流引擎,用户权限系统,前台电子商务系统,后台订单处理,库存管理系统,客户管理等等。
最后Ofbiz提供了一套基于JAVA的功能扩展方案,可以在目前最基本的功能上添加新的功能。
并且基于Component组件开发,对于不需要的功能可以将相应Component去除掉。
2.为什么不用Ofbiz呢?虽然说Ofbiz提供了一整套功能扩展方案,但是其过程十分繁琐。
实现一个最简单的功能(比如读取一张用户表的信息),需要进行配置的文件就有十几个。
对于数据库的操作进行了非常强大的封装,拥有Ofbiz引以为傲的Entity Engine(有点像Hibernate,不过比Hibernate还要猛,一句SQL语句都不用)。
只需要在相应Component的entityengine.xml对要操作的实体(对应表)进行定义,并且定义在特定服务中的增删改查方法即可。
这样说好像很好用的样子,但是实际上,需要付出非常多的时间和精力去学习这套东西,并且学习曲线会很大。
Ofbiz本身自带的功能如果不符合我们自己的需求,基本上很难进行修改,而是应该重新开发对应的功能。
比如它的Order Processing跟目前我们公司的订单管理存在很大的差距。
所以我们必须重构。
而这都需要付出很大的代价。
我们考虑使用Ofbiz的原因主要是想要在其强大功能的基础进行快速的扩展,但是如果很多功能都需要重构的话,那么就得不偿失了。
ofbiz使用注意项:在配置ofbiz路径时不要有空格。
3.如何在ofbiz上扩展一个功能呢?我们以读取显示一个简单的User List来做说明:修改ofbiz使用的数据库:(采用热部署:应用程序目录对应hot-deploy之下)第一步,建立一张User表,将Oracle的JDBC数据驱动Jar包放到这个目录:ofbiz\framework\entity\lib\jdbc第二步,修改相应的数据源配置:将jdbc部分改成对应的参数。
1.ofbiz的源码下载
/repos/asf/ofbiz/branches/release10.04(将此地址直接拷到SVN服务器即可)
注:不要在eclipse或myeclipse中用svn插件下载源码(除非电脑配置相当的高)避免卡屏甚至死机
2.将源码导入到eclipse中,步骤:
file-->import-->General-->Existing Projects into Workspace
3.第一次将项目导入到eclipse中时,可能会出项红叉。
那是因为缺少文件,第一个是framework/base目录下的build文件及
framework/sql目录下的build文件。
如有人需要可以联系我。
请发邮件。
我在公司只能用邮件。
不能聊天,ORZ。
(邮件地址:tt986101@)
最好将视图调成navigator,eclipse与myeclipse操作一样。
window-->show view-->other-->navigator
(这主要是为了方便查看哪地方缺少文件)
4.将eclipse中的ant窗口调出,再将ofbiz目录下的build.xml(注意是根目录的buile.xml)拖到ant窗口。
5.点击build【default】编译项目
6.点击run-install 安装项目
7.点击run 启动项目
启动正常访问http://localhost:8080/ecommerce/ 即可看到demo首页
http://localhost:8080/webtools/ 可访问到后台页面(登陆名为admin 密码为ofbiz。