首页 > 代码库 > OFBiz进阶之HelloWorld(一)创建热部署模块

OFBiz进阶之HelloWorld(一)创建热部署模块

创建热部署模块

参考文档 https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz+Tutorial+-+A+Beginners+Development+Guide

1 在目录hot-deploy下创建目录practice(即为要创建的模块名称)

2 在目录hot-deploy/practice下创建文件ofbiz-component.xml

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <ofbiz-component name="practice" 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd"> 5       <resource-loader   name="main" type="component"/> 6     <webapp name="practice" 7        title="Practice" 8        server="default-server" 9        base-permission="OFBTOOLS"10        location="webapp/practice"11        mount-point="/practice"12        app-bar-display="false"/>13 </ofbiz-component>

2.1 ofbiz-component.xml文件说明:

    a. ofbiz通过ofbiz-component.xml文件识别此模块

    b. 节点(resource-loader name)可以灵活设置,此处设置为main。type告诉ofbiz我们要加载一个component

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

 

    c. 节点webapp有很多属性,通常如下:

1 <webapp name="practice"2        title="Practice"3        server="default-server"4        base-permission="OFBTOOLS"5        location="webapp/practice"6        mount-point="/practice"7        app-bar-display="false"/>

 

  name :  web应用名称。

  title : 应用的标题,将被展示在顶部导航中。

  server : ofbiz通过此处值知道使用的是什么server。

  base-permission : 

  location : 默认跟路径

  mount-point : 访问此服务的URL,本例中应为:localhost:8080/practice。

  app-bar-display :  

3 创建 web app

3.1 创建webapp文件夹

在目录hot-deploy/practice下创建文件夹webapp,这个目录下包括模块的所有webapp相关文件。

webapp下内容遵循J2EE webapp标准。

3.2 创建practice文件夹

在目录hot-deploy/practice/webapp下创建文件夹practice(为webapp名称)。

注意:一个模块可以有多个webapp,例如marketing模块有两个webappp(marketing和sfa);

3.3 创建WEB-INF文件夹

在目录hot-deploy/practice/webapp/practice下创建WEB-INF文件夹:

一个OFBiz web application 需要放置两个配置文件(controller.xml 和 web.xml )。

a. controller.xml : 告诉OFBiz一个请求过来该如何处理,通过哪个action去处理,通过那个page去渲染。

b. web.xml : 告诉OFBiz 此web applation 可用的资源(database and business logic access),怎样去处理web相关问题,比如欢迎页面、重定向、错误页面等。

3.4 创建web.xml(web.xml遵循J2EE的webapp规格)

 1 <context-param> 2     <param-name>webSiteId</param-name> 3     <param-value>PRACTICE</param-value> 4     <description>A unique ID used to look up the WebSite entity to get information about catalogs, etc.</description> 5 </context-param> 6 <context-param> 7      <param-name>localDispatcherName</param-name> 8      <param-value>practice</param-value> 9      <description>A unique name used to identify/recognize the local dispatcher for the Service Engine</description>10 </context-param>11 <context-param>12      <param-name>mainDecoratorLocation</param-name>13      <param-value>component://practice/widget/PracticeScreens.xml</param-value>14      <!-- change the path to the following if the above doesn‘t work for you -->15      <!-- <param-value>component://practice/webapp/practice/widget/PracticeScreens.xml</param-value> -->16      <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>17 </context-param>

3.5 创建controller.xml

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd"> 4        <include location="component://common/webcommon/WEB-INF/common-controller.xml"/> 5        <description>Practice Component Site Configuration File</description> 6        <owner>Copyright 2001-2009 The Apache Software Foundation</owner> 7        <handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/> 8        <!-- Request Mappings --> 9        <request-map uri="main">10            <security https="false" auth="false"/>11            <response name="success" type="view" value="main"/>12        </request-map>13        <!-- end of request mappings -->14        <!-- View Mappings -->15        <view-map name="main" type="screen" page="component://practice/widget/PracticeScreens.xml#main"/>16        <!-- change the path to the following if the above doesn‘t work for you -->17        <!-- <view-map name="main" type="screen" page="component://practice/webapp/practice/widget/PracticeScreens.xml#main"/> -->18  19        <!-- end of view mappings -->20 </site-conf>

3.6 创建error文件夹

在目录hot-deploy/practice/webapp/practice下创建文件夹error,并且在此文件夹创建error.jsp

3.7 创建widget文件夹

在目录hot-deploy/practice下创建文件夹widget,并且创建PracticeScreens.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3      xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd"> 4     <screen name="main"> 5         <section> 6             <widgets> 7                 <label text="This is first practice"/> 8             </widgets> 9         </section>10     </screen>11 </screens>

3.8 运行

http://localhost:8080/practice/control/main