OFBiz快速入门

OFBiz快速入门

原文URLhttps://cwiki.apache.org/OFBIZ/ofbiz-tutorial-a-beginners-development-guide.html

一个大厦能够建多高,是由其基础决定的;一个软件能够容纳多少功能,是由其架构决定的。

一个优秀的架构能够容许很多工程师协同合作,长期不断累积功能;反之,一个脆弱的架构则捆绑住工程师的手脚,每添加一个功能都是困难重重,涉及到很多人的交互,效率非常低下,长期维护也是非常麻烦,代价很高,到一定程度就遇到天花板,无法再加入功能了。

OFBizOpen For Business

现在关于OFBiz的所有相关的信息,大部分都是英文的,可能,在当下的IT江湖里,OFBiz还没有引起ITerIT公司的广泛关注,也只是部分群体在学习与研究。当然,OFBiz的发展也是想当得快的,毕竟每天都有人commit代码,但是,版本的频繁发布,如果不能前后维持一个统一的技术架构和一个一致的编程开发模式,就会导致基于某些版本的OFBiz的系统应用不能很好的升级,留下了维护与移植的痛苦,其次就是现在的OFBiz框架本身就灰常的膨大,如果是一般的小型应用,真的有点杀鸡用牛刀的感觉了,不过由于OFBiz提供了一种可插拔的机制,也可以剔除一些不相关的应用。可能也是当前没有什么人愿意花时间成本去研究的原因!(当然,原因肯定是多方面的!也不用去细究了!一切还是得源自自我爱好!要不然,都是胡扯!)

下面的文字,都是自己用烂掉牙的英语翻译能力翻译的,定会存在不少纰漏与错误!请大伙们多多指点了!有些地方,如果自己找不到很好的中文表述,我会加上英语原文的!

这个教程被分为6个部分,也是一个由浅入深的过程。

第一部分

NOTE1:这里的代码很多都会来自Example组件。你会经常找到有关最新的OFBiz代码在Example组件中。无论在什么时候你为这个应用去看一些简单代码,都应该应用Example组件,这个能帮助你在OFBiz上开发的更好!每当有新特性出现,都会被优先加到Example组件中作为参考范例。所以,想在OFBiz基础框架上进行开发应用时,应该多关注Example组件。了解Example组件,能更好的了解OFBiz的新特性和OFBiz的编程模型是什么。

NOTE2:不要从其他组件拷贝任何文件,这样做,文件的版本号也会被遗弃拷贝的。始终去创建一个新文件,真的要求了,可以从文件中拷贝些内容。也可以对无用的代码有很强的意识。

1.创建第一个名为“practice”的应用程序

1.1 OFBizhot-deploy目录中,创建一个子目录,命名为:practicehot-deploy/practice),所创建的目录名称应该匹配OFBiz中新组件的名称。

【注意】要记住,所有客户化的开发都是尽可以被部署到hot-delopy目录中。

1.2 在(hot-deploy/practice)目录中创建名称为ofbiz-component.xml的文件。并加入以下的内容:

<?xml version="1.0" encoding="UTF-8"?>

<ofbiz-component name="practice"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd">

      <resource-loader  name="main" type="component"/>

    <webapp name="practice"

       title="Practice"

       server="default-server"

       base-permission="OFBTOOLS"

       location="webapp/practice"

       mount-point="/practice"

       app-bar-display="false"/>

</ofbiz-component>

很明显,这个文件的作用就是我们创建的(practice)应用集成到OFBiz的入口点。这个文件是用来描述OFBiz框架集中某个应用的描述文件。那么,我们来了解一下这个文件里各个元素的含义吧。

<resource-loader  name="main" type="component"/>

name属性可以是任意的字符串,type属性就是要告诉OFBiz,我们将要装载一个组件到OFBiz容器中。

<webapp>标签中,拥有很多不同的属性,其含义如下:

name:定义我们新建的web应用名称(应该是唯一的不与其他的应用名称有冲突)

title:该应用的标题,会被显示在顶部导航条中。

server:让OFBiz知道使用什么服务器

base-premission:要求用户必须要具有OFBTOOLS的权限才能使用这个应用。‘admin’管理员一直都有这个权限,我们就不必去创建任何新用户了。

location:表示服务器默认的根目录的位置路径。

mount-point:访问这个资源的URL路径。在本机上,就是 localhost:8080/practice

app-bar-display:如果为TRUE,表示我们希望组件显示在主应用的标签。也是共同OFBiz的装饰器的一部分。

目前为止,应用的第一步已经弄好!至少,在上面,你创建的内容已经可以被OFBiz加载了!下面的就是按照Java EE规范来创建WEB应用的目录结构了!

2.创建Web应用程序

OFBiz中,创建一个WEB APP的目录结构是完全符合Java EE的标准规范的!并没有手痒,自己另起灶炉!这一点,可以说,如果在日后不想把应用程序搭建在OFBiz之上,移植也是很方便!

2.1 practice组件中创建目录(webapp),完整路径是:hot-deploy/practice/webapp

这个目录包含了所有与webapp相关的文件。

2.2 webapp中创建子目录(practice),这个也是你将要开发的webapp名称。(hot-deploy/practice/webapp/practice)(有点不流利的翻译,杯具)。在OFBiz中,一个组件可以被多个webapp应用连接。e.g. marketing)组件就有两个webapps,分别是(marking)和(sfa)。webapp都是依据Java EE webapp 标准来创建的。

PS:如果一个组件中有两个可连接的webapps,那么是如何配置的呢?后面分析。

2.3 创建一个(WEB-INF)目录在webapp中,完整路径是:hot-deploy/practice/webapp/practice/WEB-INF

当然,既然是基于OFBiz上开发JavaEE APPs,就会与标准的有点不一样的,但并不是那种结构上的改变,而是类似要在标准的JavaEE应用中加入日志系统等类似,只是需要配置两个文件,就可以标识,你现在的应用是一个OFBiz webapp。两个文件分别是:controller.xml 和 web.xml

controller.xml

告诉OFBiz如何去处理来自visitorsrequests。采取什么的actions并呈现(render)什么页面。

web.xml

告诉OFBiz哪些资源(数据库和业务逻辑访问)可用于此webapp以及如何处理web相关问题,如欢迎页面,重定向和错误页面。

2.4 web.xml的内容(符合Java EEwebapp规范)。可以从/framework/example组件中拷贝。我们只需要修改其中一些重要的值,如<display-name>localDispatcherNamemainDecoratorLocationwebSiteId。修改后的内容如下:

<context-param>

    <param-name>webSiteId</param-name>

    <param-value>PRACTICE</param-value>

    <description>A unique ID used to look up the WebSite entity to get information  about catalogs, etc.</description>

</context-param>

<context-param>

     <param-name>localDispatcherName</param-name>

     <param-value>practice</param-value>

     <description>A unique name used to identify/recognize the local dispatcher for   the Service Engine</description>

</context-param>

<context-param>

     <param-name>mainDecoratorLocation</param-name>

     <param-value>component://practice/widget/CommonScreens.xml</param-value>

     <description>The location of the main-decorator screen to use for this webapp;   referred to as a context variable in screen def XML files.</description>

</context-param> 

暂停……

转载于:https://my.oschina.net/daqing15/blog/17420

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值