1)ofbiz可以整个看作一个大服务容器
。
2)web容器中包含的服务
顶级目录是application.
application下是如product,workeffort
,securityext
等子服务
程序。为什么叫子服务,而不是子web应用程序
呢?请接着来看下面的例子。
3)程序结构。我们从一个例子分析,workeffort服务的结构:
-workeffor
--build
--config
--data
--entidydef//存放数据模型定义的xml文件
--script
--servicedef//存放service定义的xml文件
--testdef
--webapp//子web程序
----ical
------WEB-INF
--------web.xml
----workeffor
------WEB-INF
--------web.xml
--------controller.xml
//提供Request URL Mappings请求路径相关
--wedget
//web子程序返回的UI界面相关,一般使用freemarker
--build.xml
--component-load.xml
/
/可以申明此子服务的服务可以被其它子服务调用,如中的workeffort能被
product调用。
--ofbiz-component.xml/
/子服务申明文件,主要内容包括四部分。
4)声明控制器。
ofbiz-component.xml:
主要声明workeffort
所有服务的文件位置。
一是配置文件夹classpath,指向上面列举的文件夹:
<classpath
type="jar" location="build/lib/*"/>
<classpath type="dir" location="config"/>
<classpath type="dir" location="script"/>
二是数据模型entity声明文件的位置:
entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml
"/>
<entity
-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_old.xml"/>
<entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_view.xml"/>
<entity-resource type="eca" reader-name="main" loader="main" location="entitydef/eecas.xml"/>
三是web service的申明:
<service
-resource type="model" loader="main" location="servicedef/services.xml
"/>
<service-resource type="model" loader="main" location="servicedef/services_timesheet.xml"/>
<service-resource type="eca" loader="main" location="servicedef/secas.xml"/>
四是子服务的子webapp的位置:如上例子有两个ical和workeffor
<webapp
name="workeffort"
title="WorkEffort"
server="default-server"
location="webapp/workeffort"
base-permission="OFBTOOLS,WORKEFFORTMGR"
mount-point="/workeffort"/>
<webapp name="ical"
title="iCalendar"
app-bar-display="false"
server="default-server"
location="webapp/ical"
mount-point="/iCalendar"/>
5)加载顺序。很容易看出先ofbiz-component.xml,然后加载其他问文件。
6)调用控制器。
看到现在我们发现一个问题,上面的都是声明,最关键的调用控制是怎么发生的?浏览器访问时,url解析是怎么申明的呢?
controller.xml,
就是他了,他负责寻址,调用业务类或者业务服务类处理,并返回UI.
看个例子,注意下面的event标签的type和invoke:
<request-map uri="createWorkEffortAssoc">
<security https="true" auth="true"/>
<event type="service" invoke="createWorkEffortAssoc"/>
<response name="success" type="view" value="EditWorkEffortAssoc"/>
<response name="error" type="view" value="AddWorkEffortAssoc"/>
</request-map>
当请求createWorkEffortAssoc时,调用servicedef文件夹下createWorkEffortAssoc。并返回到wedget下的申明的view视图EditWorkEffortAssoc或者AddWorkEffortAssoc,视图一般用freemarker,解析返回就是一个html.文件
<request-map uri="changeDelegator">
<event type="java" path="org.ofbiz.webapp.event.CoreEvents" invoke="changeDelegator"/>
<response name="success" type="view" value="main"/>
<response name="error" type="view" value="error"/>
</request-map>
当请求createWorkEffortAssoc时,直接调用类org.ofbiz.webapp.event.CoreEvents的changeDelegator方法。并返回到wedget下的申明的view视图EditWorkEffortAssoc或者AddWorkEffortAssoc,视图一般用freemarker,解析返回就是一个html.文件。
7)最后再回答那个问题:application下为什么叫子服务,而不是子web应用程序
呢?
一是从文件结构就能看出,<web-app>也被当作了服务的中一类。
二是分析ofbiz-component.xml,里面可以不使用web-aap标签,此时就是一个纯粹的web service服务器了,如securityext。
分享到:
相关推荐
OFBiz全称为Open For Business Project,它是一个用于构建企业应用程序的全面业务解决方案,涵盖电子商务、供应链管理、客户关系管理等多个领域。 OFBiz是基于Java的,它提供了丰富的服务和组件,通过灵活的表结构...
### OFBiz程序结构解析 #### 一、概述 OFBiz(Open For Business)是一款开源的企业级电子商务框架,它提供了一套完整的解决方案来构建和管理复杂的业务应用。该框架基于Java语言开发,支持多种数据库,并提供了...
OFBiz 环境搭建包括下载和安装 Java、下载和安装 OFBiz、安装数据库、配置应用程序服务器等步骤。OFBiz 环境搭建的正确性将直接影响到后续的开发和测试工作。 OFBiz 安装 OFBiz 安装是指将 OFBiz 下载到本地计算机...
总之,"Ofbiz数据库全模型"是一个宝贵的资源,对于学习、开发和维护Ofbiz应用的人来说,它提供了对系统数据结构的全面了解,有助于提升工作效率并确保项目的稳定性和扩展性。无论是初学者还是经验丰富的Ofbiz开发者...
* applications:Ofbiz 的应用程序代码 * components:Ofbiz 的组件代码 * data:Ofbiz 的数据文件 * entity:Ofbiz 的实体关系模型代码 * hot-deploy:Ofbiz 的热部署文件 * ofbizComponents:Ofbiz 的组件配置文件...
7. OFBiz启动与监控:涉及到启动OFBiz应用,包括内存分配、运行状态监控和日志查看。也包括了可能遇到的启动问题及其解决方法。 8. 演示和探索OFBiz:指南提供了一个完整的演练,包括在电子商务应用中购物流程的...
Apache Ofbiz是一个开源的企业应用框架,它为构建复杂的业务应用程序提供了全面的功能,包括供应链管理、电子商务、财务会计、人力资源等。对于初学者来说,理解Ofbiz的基本架构和工作原理是至关重要的。 Ofbiz的...
这种设计使得外部应用程序和定制化应用可以轻松地集成到OFBiz中。 **七、深入学习与开发** 要深入理解和开发OFBiz,你需要了解其组件模型、服务定义、XML配置文件的用途(如`build.xml`、`component.xml`)、JSP和...
理解这些表的结构和关系对于调试、优化和扩展Ofbiz应用非常重要。 - `ofbiztenant.sql`:可能涉及到多租户(multi-tenancy)的概念,Ofbiz支持在一个实例中管理多个独立的业务实体,每个实体称为一个租户。此文件...
Ofbiz,全称Open For Business Project,是一个开源的企业级应用框架,主要用于构建复杂的业务应用程序。它提供了全面的业务组件,包括库存管理、订单处理、客户服务等,为企业信息化提供了一站式解决方案。 在...
- **访问OFBiz**:说明如何通过浏览器访问OFBiz应用。 - **探索Web应用程序“ecommerce”**:介绍该模块的功能和使用场景。 - **购物体验**:模拟在线购买商品的过程,了解其业务流程。 - **探索Web应用程序...
OFBiz(Open For Business Project)是一个全面的企业级业务应用程序框架,它由Java语言编写,提供了一系列的服务、组件和工具,用于构建和管理电子商务、供应链管理、客户关系管理等多种业务应用。 OFBiz的核心...
掌握这些基础知识后,你可以逐步学习如何创建实体、编写服务、设计用户界面,并最终集成所有组件来构建完整的OFBiz应用程序。 总之,Apache OFBiz是一个功能强大的企业级应用框架,对于希望从事电子商务、ERP或CRM...
【OFBIZ综合文档】深入理解MVC模式 在IT行业中,尤其是企业级...理解和掌握MVC模式对于开发和维护OFBIZ应用程序至关重要,因为它能帮助我们更好地组织代码,提高代码的可读性和可扩展性,从而降低项目的长期维护成本。
这个实例教程旨在帮助初学者快速理解并上手Ofbiz,从而能够构建和管理自己的企业级应用程序。 【描述】博文链接指向了iteye博客上的一篇文章,该文章详细介绍了如何从零开始学习Ofbiz,包括安装环境、创建项目、...
MVC模式是软件工程中的一种架构模式,用于分离应用程序的不同部分,以提高可维护性和可扩展性。在OFBiz中,MVC模式被广泛采用,以确保业务逻辑、用户界面和数据管理的有效隔离。 1. **模型(Model)**:在OFBiz中,...
本节将详细介绍创建一个简单的OFBiz应用程序的具体步骤,即“practice”组件。 1. **创建组件目录**: - 在`hot-deploy`目录下创建名为`practice`的子目录。 - 这个目录名需要与即将创建的组件名称一致。 2. **...
Ofbiz会根据这些定义自动生成对应的数据库表,并动态地生成相应的Java对象,用于应用程序中的数据处理。这样一来,开发人员只需关注业务逻辑的实现,Ofbiz会自动处理所有与数据库交互的细节。 #### 二、Ofbiz 的...