`
jiasudu1649
  • 浏览: 724601 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用OFBiz创建一个完整的应用(翻译hello3)

阅读更多

网上的资料太老了
都是04,05年的
ofbiz还是在发展的。
javaeye太垃圾了
只允许jpg,gif,png,bmp格式的图片和zip,rar格式的压缩文件。最多三个附件, 每个文件大小不能大于5M
我贴了n久图都没贴上去。

Building a Complete Application with OFBiz

用OFBiz创建一个完整的应用

在这个指南中,我们将使用OFBiz创建一个完整的应用程序。我们的应用程序将允许用户登录并创建一个他们自己个人信息,他们的爱好。并且查看其他访问这个站点的人和他们的爱好内容等等,这是一个简单的访问站点。

 previous tutorials,

请确认你已经看过前面的所有指南,我将不再重复相同的内容。

定义一个数据模型

第一步是定义数据模型。我们想用户信息和他们的爱好并且查看每个人的所有爱好(或者, 所有的人分享一种爱好)。数据模型是定义人员,爱好,和人员-爱好的联系。

在关系型数据库中,你将定义两个table,其中一个是人员,另一个是爱好。 还有定义他们之间联系的第三个表. 第三个表允许一个人员关联许多爱好, 反之亦然. 你将定义人员和爱好的外键来约束第三个表。

 

OFBiz工作原理也是类似. 你可以定义两个实体,我们将定义helloperson和hellohobby ,和一个连接实体, hellopersonhobby , 并建立了它们之间的关系. 他们之间关系主要是外键约束,而且不需要你自己去定义。(当外键改变,需要改变你的代码) .

注意:我们正在创造一个应用完全独立的数据模型来作说明. 如果我们是在建立一个真正完整的应用, 最好的做法是尽可能利用许多现有的OFBiz框架实体来做,而不是创造自己helloperson ,我们将利用现有的框架OFBiz Party/Person/PartyGroup这三个已有实体.

 

定义数据模型, 在hellocrm下 创建entitydef文件夹

在entitydef /目录内 ,创建entitymodel.xml和entitygroup.xml

helloperson和hellohobby各有一个主键, hellopersonhobby有两个主键, 它用来链接helloperson和hellohobby . 这是好的做法,让你外键关联,使调试容易,避免发生意外。 外键的名称OFBiz由产生.

定义这些实体在另一文件里, entitygroup.xml,这也是很重要的(但很容易忘记) 。 在entitydef /目录,这样OFBiz就会知道哪些数据写入数据库中,以供使用人) :

否则,将实体存在OFBiz的,但是当你真正尝试使用他们,你会得到这个错误:

org.ofbiz.entity.GenericEntityException: Helper name not found for entity HelloPerson

最后,你必须增加这一行到你的ofbiz-component.xml中的 ,这样让OFBiz知道这个实体是应用程序的一个组件

现在启动OFBiz.你将看到你的console.log在(linux下),你在(Windows)的命令行下,通知你你的实体是被加载的。

5336  (main) [            UtilXml.java:242:DEBUG] XML Read 0.0070s: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/entitydef/entitymodel.xml

5693  (main) [            UtilXml.java:242:DEBUG] XML Read 0.0050s: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/entitydef/entitygroup.xml

When you go into webtools, you will see the entities:

在你进入webtools,你将看到这些实体。
 

点"All" 在 HelloPerson ,你可以看到他的所有属性:

注意,接下来的每个属性是有java类型和SQL类型. SQL类型是在ramework/entity/filedtype/目录,并视你使用数据库不同而不同, (自带的是 Derby) . 如果有任何数值,它会显示在这个实体的属性.

 

创建例子数据

现在让我们一起创建一些例子数据,为我们的hobbies. 在大多数OFBiz的应用程序中, 我们都将创造一个data/目录内的应用,并创建一个XML文件的例子数据. 让我们看看hobbiesdata.xml :

这个实体引擎XML文件, 是一个标准OFBiz的XML格式的输入及输出数据. 实在是相当简单. 使用名称是实体( " hellohobby "在我们的情况)的标签名称, 使用名称的领域要么属性或作为内标签(见上次值为"葡萄酒"

你的属性可以是属性的数值或内部的标签的值, 如果你有很长的数值在CDATA段落里面是最好的. 另外, 主键不须大写或隔着_ , 但在其他OFBiz的应用程序这是一个规范.
 

现在你准备加载例子数据. 到Web Tools主界面,你会看到链接的" XML Import " . 点击" XML Import " ,并于下一个画面,它会提示你文件夹的名称, 在你的OFBiz中的路径. 我通常不点击任何复选框和仅仅是" Import " . 如果你是成功的, 同一个介面底部会告诉你,有多少数据添加:

   1.

如果你的导入失败了,仔细地阅读错误信息从你的console.log文件。 它是 通常 是这些原因之一:

   1. 你使用了为一个主键是太长的数值。 OFbiz “id-ne”是Java String,但是在SQL中他是20-char的VARCHAR。
   2. 你丢失了一个必需的主键。
   3. 你设法插入一个属性将违反外键约束。

如果你仔细地读了日志,你能明白(GenericValue) OFBiz设法创建的数值,并且数据库反馈的错误信息是什么。 它也许给你一个违反了外键约束并且有些隐蔽的外键的名字

你在Web Tools 主页也许注意了“XML Export”链接。 这个链接可以为你产成一个XML文件。

现在去“Entity Maintenance”(实体维护),在HelloHobby旁边点击“所有”,你可以看到插入的数值:

除了增加你的属性和数据之外,当你的数据被创建并且被更新时,OFBiz自动地创建了时间戳,这是为了横跨OFBiz多个事例同步数据。

最后,如果你增加这个命令到你的ofbiz-component.xml文件, 在安装过程期间OFBiz可以自动地安装你的例子数据: 

OFbiz实际上让你定义数据是否有“例子数据”,这样为你的app可以展示,例子数据仅仅是展示用的。
创建业务逻辑

即然我们已经定义了数据模型,我们可以写一种简单的应用以delegator直接地访问实体。 这是OFBiz应用程序的标准操作,但是,做为业务逻辑的分层:新建,更新和删除。 delegator直接地为查找数据使用,如更加复杂的查寻。

创建业务逻辑的过程是有二步。 首先,你定义了通用的业务逻辑在 XML文件(使用class 和 方法 或者 脚本),来告诉OFBiz业务逻辑引擎你的参数和位置,第二,你实现服务可以用java,OFBiz minilang,或者另一种脚本语言

业务逻辑通常定义在一个servicedef/目录里面 ,并且包括一个或更多services.xml文件。 这我们的services.xml 文件:

注意services.xml是参考实体执行。同时直接地与 标签执行。 这些自动属性标签保存你时间并且使你的应用更加容易维护。

你在你的ofbiz-component.xml也会需要参考service资源。 另外,你必须创建   并告诉它在哪里的ofbiz-component.xml装载apps。 这就是为什么我们的ofbiz-component文件看起来相似,在增加classpaths以后,实体体定义、 service定义和例子数据:

现在它是否看起来和其他ofbiz-component.xml很相似?

现在创建services。A Java service流行的写法是在你的应用的src/目录里面被写的: 一个公共的class 有两个参数的公开静态方法, DispatchContext为得到一个对象是你输入参量的delegators, dispatchers, locale, and security,和称上下文的 map并且退回结果map:

Java services也将需要编译,需要适当的classpaths的知识为其他OFBiz apps。 这可以使用ant 并且build.xml构建脚本,当然你可以从另一种应用通常复制。 它是在所有OFBiz应用和框架中一个相当长的标准文件,因此我这里不会包括它。

当写你的service和创造build.xml脚本,你能建立你的象这样的Javaservice:

sichen@linux:~/eclipse/workspace/ofbiz/hot-deploy/hello3> ant

Buildfile: build.xml

 

init:

 

clean-lib:

   [delete] Deleting directory /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/lib

 

prepare:

    [mkdir] Created dir: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/classes

    [mkdir] Created dir: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/lib

 

classpath:

 

classes:

    [javac] Compiling 1 source file to /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/classes

 

jar:

      [jar] Building jar: /home/sichen/eclipse/workspace/ofbiz/hot-deploy/hello3/build/lib/ofbiz-party.jar

 

BUILD SUCCESSFUL

Total time: 2 seconds

构建过程基本上采取了在src/目录的所有您的文件,编译了他们并且把他们放入构建或lib目录。

Minilang比较起来是简单的。 简单的minilang service在script/目录里面并且是一个XML文件。 由于它是专门为共同的OFBiz应用任务设计,例如 查寻数据,存放数据,检查premissions,并且与现有的实体一起使用,并且执行业务逻辑,它使那些任务工作非常容易:

最后,测试它,重新启动OFBiz装载所有新的定义在ofbiz-component.xml和services.xml。 然后,打开beanshell 窗口并且测试我们的service (注意: 您首先应该 下载bshcontainer.bsh 并且把它放入在你的ofbiz/目录)

这里, beanshell称执行service的服务调度员,他们是成功的,因此正确的数据被创建。 (当然,它实际上采取了大约六次尝试,但我不会和你谈论细节使你不耐烦。)

那么现在你创造了数据模型和service为他们。 下一个步骤将放他们入Web应用程序。

 

分享到:
评论

相关推荐

    ofbiz电商框架hello主题文件定制

    在电子商务领域,开发高效、可定制的用户界面是至关重要的,而Apache OFBiz(Open For Business Project)是一个开源的企业级应用框架,它提供了丰富的功能来支持电商系统的构建。本主题文件定制教程主要聚焦于如何...

    ofbiz电商框架hello与皮肤定制实例

    "Hello"是OFBiz中的一个基础示例,用于帮助初学者快速了解框架的基本操作。它通常包含简单的页面和业务逻辑,帮助开发者熟悉OFBiz的工作流程,如服务调用、事件处理、视图渲染等。 3. **皮肤定制**: 在OFBiz中,...

    Ofbiz12.04 进阶之三 第一个Helloword的应用

    本篇将聚焦于“Ofbiz12.04 进阶之三 第一个HelloWord的应用”,我们将深入探讨如何在OFBiz框架下创建并运行你的第一个应用。 首先,理解OFBiz的基本结构至关重要。OFBiz采用模块化设计,每个模块都有其特定的功能,...

    OFBIZ官方文档

    Apache OFBiz(Open For Business)是一个开源的电子商务平台,被广泛用于构建企业级的商务应用程序。它提供了丰富的电子商务功能,例如订单处理、库存管理、供应商和合作伙伴管理等。OFBiz具备灵活的架构,可以通过...

    ofbiz 入门+增删改查+实体

    Apache OFBiz是一个开源的企业应用程序框架,它提供了许多企业级功能,包括库存管理、订单处理、客户关系管理等。本教程将带你逐步了解如何入门OFBiz,以及如何在OFBiz环境中进行基本的CRUD(创建、读取、更新、删除...

    Ofbiz快速开发入门详解

    Ofbiz,全称Open For Business Project,是一个开源的企业级应用框架,主要用于构建复杂的业务应用程序。它提供了全面的业务组件,包括库存管理、订单处理、客户服务等,为企业信息化提供了一站式解决方案。 在...

    OFBiz教程_-_初学者的开发指南

    本教程将带领您完成一个简单的应用程序——“Hello World”级别的示例项目,以此为基础逐步介绍OFBiz的各个方面。以下是一些关键知识点: 1. **环境搭建**:如何设置OFBiz开发环境,包括安装必要的软件工具和配置...

    OFBiz开发快速入门

    至于"hello"文件,它可能是一个简单的示例项目,用于演示如何在OFBiz中创建并运行一个基本的服务或页面。 总的来说,学习OFBiz开发需要对Java、XML、Web服务和数据库有基本的了解。通过这个快速入门指南,开发者将...

    ofbiz研究第四天:终于有成果了,增删改查!

    在IT行业中,Apache OFBiz(Open For Business Project)是一个企业级开源应用套件,它提供了全面的企业业务自动化服务,包括电子商务、供应链管理、生产制造、财务会计等多个领域。本篇文章将围绕“ofbiz研究第四天...

    OFBiz教程-初学者开发指南

    例如,创建一个简单的页面来显示"Hello Practice Application"。 **4. 安全认证** OFBiz提供了内置的安全机制,包括角色、权限和会话管理。在第二部分,你将了解如何保护Web应用程序,确保只有经过授权的用户才能...

    Apache OFBiz Development The Beginner's Tutorial

    - **创建 Eclipse 项目**:在 Eclipse IDE 中创建一个新的 Java 项目,并将 OFBiz 源代码导入到该项目中。 ##### 5. 使用 Derby 数据库 - **Derby 数据库**:Apache Derby 是一款轻量级的开源关系型数据库管理系统...

    Groovy中文教程

    OFBiz是一个基于Java的全面的企业应用套件,涵盖了供应链管理、客户关系管理、电子商务等多个业务领域。OFBiz提供了许多服务组件和模块,开发者可以使用Groovy来编写灵活的服务脚本和工作流,从而快速实现业务逻辑。...

    扩展你的web app以screen-widget, decorator, and actions

    文档“ofbiz_hello2.doc”可能是关于Apache OfBiz(一个开源的企业应用程序框架)的教程,讲解如何在OfBiz中实现screen-widgets、decorators和actions。 Apache OfBiz是一个全面的电子商务解决方案,它使用了上述的...

Global site tag (gtag.js) - Google Analytics