zoukankan      html  css  js  c++  java
  • OFBiz进阶之HelloWorld(一)创建热部署模块

    创建热部署模块

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

    In this part, you will learn how to create and load your own custom component and add first screen that shows “This is practice application”

    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 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
     3 <web-app>
     4     <context-param>
     5         <param-name>webSiteId</param-name>
     6         <param-value>PRACTICE</param-value>
     7         <description>A unique ID used to look up the WebSite entity to get
     8             information about catalogs, etc.</description>
     9     </context-param>
    10     <context-param>
    11         <param-name>localDispatcherName</param-name>
    12         <param-value>practice</param-value>
    13         <description>A unique name used to identify/recognize the local
    14             dispatcher for the Service Engine</description>
    15     </context-param>
    16     <context-param>
    17         <param-name>mainDecoratorLocation</param-name>
    18         <param-value>component://practice/widget/PracticeScreens.xml</param-value>
    19         <!-- change the path to the following if the above doesn't work for you -->
    20         <!-- <param-value>component://practice/webapp/practice/widget/PracticeScreens.xml</param-value> -->
    21         <description>The location of the main-decorator screen to use for this
    22             webapp; referred to as a context variable in screen def XML files.</description>
    23     </context-param>
    24 
    25     <filter>
    26         <filter-name>ContextFilter</filter-name>
    27         <display-name>ContextFilter</display-name>
    28         <filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class>
    29         <init-param><param-name>disableContextSecurity</param-name><param-value>N</param-value></init-param>
    30         <init-param>
    31             <param-name>allowedPaths</param-name>
    32             <param-value>/error:/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images:/includes/maincss.css</param-value>
    33         </init-param>
    34         <init-param>
    35             <param-name>errorCode</param-name>
    36             <param-value>403</param-value>
    37         </init-param>
    38         <init-param>
    39             <param-name>redirectPath</param-name>
    40             <param-value>/control/main</param-value>
    41         </init-param>
    42     </filter>
    43     <filter-mapping>
    44         <filter-name>ContextFilter</filter-name>
    45         <url-pattern>/*</url-pattern>
    46     </filter-mapping>
    47     
    48     <servlet>
    49         <servlet-name>ControlServlet</servlet-name>
    50         <display-name>ControlServlet</display-name>
    51         <description>Main Control Servlet</description>
    52         <servlet-class>org.ofbiz.webapp.control.ControlServlet</servlet-class>
    53         <load-on-startup>1</load-on-startup>
    54     </servlet>
    55     <servlet-mapping>
    56         <servlet-name>ControlServlet</servlet-name>
    57         <url-pattern>/control/*</url-pattern>
    58     </servlet-mapping>
    59 
    60     <session-config>
    61         <session-timeout>60</session-timeout><!-- in minutes -->
    62     </session-config>
    63 
    64 
    65     <welcome-file-list>
    66         <welcome-file>index.jsp</welcome-file>
    67         <welcome-file>index.html</welcome-file>
    68         <welcome-file>index.htm</welcome-file>
    69     </welcome-file-list>
    70 </web-app>

    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

  • 相关阅读:
    Ibatis,Spring整合(注解方式注入)
    Amoeba搞定mysql主从读写分离
    ClickjackFilterDeny X-Frame-Options
    Clickjacking: X-Frame-Options header missing
    升级至Struts2 2.5.2
    js和java MD5加密
    Struts2 2.5.2
    Struts2 2.5.2的套路
    java8 集合流式操作
    JS 文本输入框放大镜效果
  • 原文地址:https://www.cnblogs.com/yanchuanblog/p/3866830.html
Copyright © 2011-2022 走看看