OFBiz Tutorial hello world.docx
- 文档编号:6565544
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:29
- 大小:829.23KB
OFBiz Tutorial hello world.docx
《OFBiz Tutorial hello world.docx》由会员分享,可在线阅读,更多相关《OFBiz Tutorial hello world.docx(29页珍藏版)》请在冰豆网上搜索。
OFBizTutorialhelloworld
OFBizTutorial-ABeginnersDevelopmentGuide(官方文档)
https:
//cwiki.apache.org/confluence/display/ofbiz/ofbiz+tutorial+-+a+beginners+development+guide
Part1~2for1stday
开始之前
软件准备:
i.OFbiz
ii.JDK1.7
iii.安装OFbiz推荐开源数据库postgresql
iv.安装数据库管理工具pgadmin
v.下载postgresql的jdbcdriverjar
vi.安装Ant
到官网(http:
//ofbiz.apache.org/source-repositories.html)下载或者svn获取OFbiz的源代码
导入eclipse中,用svn获取http:
//svn.apache.org/repos/asf/ofbiz/trunk
数据库配置:
打开pgadmingli管理工具,新建数据库
createdatabaseofbiz;--数据源localpostgresgroup-name=org.ofbiz
createdatabaseofbizolap;
createdatabaseofbiztenant;
配置OFbiz
把下载的postgresqljdbcdriver放到${OFBIZ_HOME}/framework/entity/lib/jdbc
配置数据源,打开${OFBIZ_HOME}/framework/entity/config/entityengine.xml
a)修改默认 b)在 其他两个数据源也修改。 补充说明: entitygroup.xml中group 在entitygroup.xml中group的对应entityengine.xml数据源,就是简单理解是那个database entitygroup.xml,in the entitydef/ directory, so OFBiz will know which delegator, and thus database, to use for them. CMD进入${OFBIZ_HOME}下面执行命令行antload-demostart初始化需要几分钟。 OFbiz启动,配好的数据源自动初始化数据库。 可以打开数据库管理工具查看生成的表。 HowtocombineOfBizwithEclipse? ●CreatingPracticeApplication(HelloWorld...) 这教程面向OFBiz初学者。 帮助学习OFBiz应用开发流程基础。 创建这个教程背后的目的是让开发者通过最佳实践熟悉代码习惯、控制流或更多。 这个练习充当OFBiz的”Helloworld”,和由KernighanandRichie引入的c语言编程的第一个Helloworld一样。 ●Part-1 注1: 有更多的疑问,你可以参考Example组件。 你准能在OFBiz的最新代码的example组件中找到你想要的代码。 任意时候想参考例子代码,作为这个应用的开发,这些将给你未来的开发中带来帮助。 每一个新功能会第一时间加入到example组件中作为参考。 注2: 在开始开发这应用前,你一定要阅读下面内容: OFBizContributorsBestPractices , CodingConventions BestPracticesGuide 注3: 不要从其它组件中拷贝文件,因为修订的版本号也会拷贝。 如果需要总是创建一个新文件,然后拷贝这文件的内容。 也注意去掉无用的代码。 注4: 搜索任意文档最好的地址是OFBizDocumentationIndex. 注5: 从右边开始阅读控制台的日志是一个习惯,可以使得排除问题变得容易些,更好地理解系统。 ●创建第一个基本应用 命名为"practice" 第1步: 在hot-deploy下创建子目录命名为“practice“。 这个目录名要匹配我们要创建的组件名。 注: 记住所有的定制化开发都只在这个文件路径下完成。 第2步: 在hot-deploy/practice路径下创建ofbiz-component.xml文件,填入下面的内容。 (作为参考你可以检查 这个文件在OFBiz任意其它组件中) xmlversion="1.0"encoding="UTF-8"? > xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation="http: //ofbiz.apache.org/dtds/ofbiz-component.xsd"> --addingtheclasspaths,entitiesdefinitions,servicedefinitions,andseeddata--> server="default-server" base-permission="OFBTOOLS" location="webapp/practice" mount-point="/practice" app-bar-display="false"/> ofbiz-component.xml说明: 1.这个ofbiz-component.xml文件是负责让OFBiz知道资源的位置,同时让你加入到classpath中. 2.这个'resource-loadername'可以是任意字符串。 这儿我们设为"main".这个'type'告诉OFBiz我们将开始装载一个组件。 3.在 server="default-server" base-permission="OFBTOOLS" location="webapp/practice" mount-point="/practice" app-bar-display="false"/> a)name: -定义我们web应用的名字。 b)title: -这个将是应用的标识,会显示在顶端导航栏上。 c)server: -这个让OFBiz知道使用哪个server d)base-permission: -这行要求用户要有OFBTOOLS权限才能使用这个应用。 因为'admin'用户有这个权限,所以我们不必创建其它新用户。 e)location: -在这个服务器上缺省基准路径的位置。 f)mount-point: -这是访问资源的URL,应该是localhost: 8080/practice g)app-bar-display: -这个是让OFBiz知道是否显示在主应用导航条上,这个是公用OFBiz修饰的一部分。 ●创建webapp Step-1: 在practice组件中创建一个"webapp"目录(hot-deploy/practice/webapp).,这个目录包含所有这组件相关的webapp目录。 Step-2: 在webapp目录下创建一个子目录命名为"practice",这个就是我们要开发的webapp名称(hot-deploy/practice/webapp/practice).一个组件可以附加多个web应用。 比如在"marketing"组件中有两个webapps"marketing"and"sfa"。 我们创建的webapp将按照J2EE的Web应用标准。 Step-3: 在你webapp下创建WEB-INF目录(hot-deploy/practice/webapp/practice/WEB-INF)。 一个OFBiz的web应用要有两个配置文件: controller.xml和web.xml。 这controller.xml告诉OFBiz从访问者来的不同请求做不同的事: 做什么动作和渲染什么页面。 web.xml告诉OFBiz什么资源(databaseandbusinesslogicaccess)对这个web应用是有效的和如何处理web相关的事,比如 Step-4创建一个命名为"web.xml"(web.xml遵守j2eeweb应用规范).这个文件的内容可以从别的任意组件中拷贝,比如/framework/example组件.我是从example中把它完全拷贝过来改掉需要修改的。 最注意的值是 theServiceEngine //practice/widget/CommonScreens.xml referredtoasacontextvariableinscreendefXMLfiles. 现在设置这个值: "component: //practice/widget/CommonScreens.xml"作为这个位置,你一会就会知道原因。 这个位置是用来指出在screens中的主修饰器位置的。 象如下: ${parameters.mainDecoratorLocation},通过改变它增加了代码的独立性,当我们需要改变主修饰器的位置。 那时我们仅仅需要改为这个位置,将会应用到使用它的所有screen。 在screen中这样做的好处是可以从其它组件中重用已存在的screen,但是它用你的修饰器来修饰那个screen,仅仅是在相同模式用在所有地方和在所有组件中来显示mainDecoratorLocation.在这个应用开发的不远将来,当你在你的screen中增加修饰器的时候会集中到这点上。 Step-5创建一个命名"controller.xml"(被ofbizwebapp控制器使用)的文件。 这个文件开始是小而简单,但随后我们增加功能而快速增长,有点像所有请求的呼叫中心。 现在插入下列代码: xmlversion="1.0"encoding="UTF-8"? > xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation="http: //ofbiz.apache.org/dtds/site-conf.xsd"> //common/webcommon/WEB-INF/common-controller.xml"/> —RequestMappings--> --RequestMappings--> --endofrequestmappings--> --ViewMappings--> type="screen"page="component: //practice/widget/PracticeScreens.xml#main"/> --endofviewmappings--> Step-6: 创建新的目录并命名为'error'(hot-deploy/practice/webapp/practice/error). Step-6.a: 在"error"目录中创建一个文件.这个文件的内容可以取自任意存在的组件中,比如example组件。 你显示错误信息页面的位置将被指定在controller.xml文件的开始位置,比如 Step-7: 在你的组件目录practice中创建一个"widget"(hot-deploy/practice/widget).这个目录就包含forms,menus,andscreens,用来处理用户界面的。 Step-8: 在"widget"中创建文件"PracticeScreens.xml".这个文件的内容可以取自任意组件中,例如example组件。 现在开始,你将能开始创建screens视图。 最有可能开始的screen将会是如下: xmlversion="1.0"encoding="UTF-8"? > xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation="http: //ofbiz.apache.org/dtds/widget-screen.xsd"> "/> Step-9: 现在我们这里有基本的元素,让我们再检查基本流程,不管你的组件变得如何庞大和复杂。 开始,通过浏览器来发动一个请求来看指定的资源。 举例说明这个请求: "localhost: 8080/practice/control/main" 程序执行流程: 1.当OFBiz看到这个请求,首先检查/practice部分。 这是因为在我们的ofbiz-component.xml文件,我们指出我们的web应用的装载点是/practice。 现在知道我们的practice组件将处理余下的请求。 2.OFBiz将然后看我们的controller.xml文件。 在我们的controller.xml文件有request-maps和view-maps。 如果它发现一个名字为'main'的request-map,它将使用相关联的view-map,如下所述。 这个request-map也能指定一个view或我们将会看到的event或service.如果指定一个view将在thecontroller.xml文件中进一步查找,看是否有在request-map指定值对应的view-map。 3.现在我们继续保持简单,假定所有views到一个type=screen.在这个情况下,页面标签指定一个路径到screen定义文件而且一个screen名称显示在"#"符号后。 Step-10: 现在该运行你的第一个练习应用。 通过命令行输入下面: java-Xmx256M-jarofbiz.jar(the-Xmx256M命令仅保证程序有足够的内存)。 然后在浏览器上点击这个地址http: //localhost: 8080/practice/control/main。 浏览器应该看到输出屏幕显示"HelloWorld! ": Step-11: 在webapp目录"practice"创建一个index.jsp文件(文件的内容能拷贝自"example"组件).这个文件负责重定向响应至control/main,如果你给一个象如下的URLhttp: //localhost: 8080/practice/。 如果你给一个象如下的URL: http: //localhost: 8080/practice/unknown/requestit将会重定向到web.xml文件中指定的redirectPath。 既然那样,ContextFilter将过滤出这个请求和使用这个重定向路径来重定向这个请求。 ●Part-2 做一些高级的 Step-1: 现在是该在这个应用中为screens创建decorator装饰器。 在"widget"目录中创建一个CommonScreens.xml。 这个文件包括公用screens,用来贯穿整个应用。 一个公用screen可以有一个header和footer被包含以便任意其它screens能用它作修饰器也同样有这些项。 这些你可以参考"example"组件中的CommonScreens.xml文件。 CommonScreens.xml文件中代码将是: xmlversion="1.0"encoding="UTF-8"? > xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation="http: //ofbiz.apache.org/dtds/widget-screen.xsd"> 参照"example"组件中的CommonScreens.xml文件main-decorator的用法。 这一刻两个重要的阅读点是: UnderstandingtheOFBizWidgetToolkit和FAQ.的修饰器部分。 Step-2: 为这个应用创建一个菜单。 为此在你的组件的"widget"目录中创建一个PracticeMenus.xml文件。 这个可以参考"example"组件的ExampleMenus.xml文件。 xmlversion="1.0"encoding="UTF-8"? > xsi="http: //www.w3.org/2001/XMLSchema-instance"xsi: noNamespaceSchemaLocation="http: //ofbiz.apache.org/dtds/widget-menu.xsd"> //common/widget/CommonMenus.xml"> 如下在你的CommonPracticeDecorator包含菜单文件: //practice/widget/PracticeMenus.xml"/> Step-3: 在WEB-INF目录中创建子目录"/actions"。 在这个目录中我们将创建脚本文件。 脚本文件是准备数据用的。 这些文件将是groovy文件。 以前是用bsh(beanshell)文件。 这是用来在运行中从数据库中取数据给用户界面的脚本。 参考: Tips&TrickswhileworkingwithGroovy(http: //docs.ofbiz.org/pages/viewpage.action? pageId=4472)和http: //groovy.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OFBiz Tutorial hello world