知道OFBiz是一个偶然的机会,当时需要重新构思一个电商平台,在开源社区里一通扒拉之后,发现居然有一个这么牛的开源电商平台,大喜并下之...
由于本平台过于庞大,决定从一个小示例开始,动手前搜了一下,网上有不少例子,尝试过后发现都不能运行成功。参考《OFBiz Tutorial - A Beginners Development Guide》及官方的Practice例子后,终于成功的编了个世界经典--Hello World,写此文以记录。
环境:
jdk1.8.0_65 X64
apache-ofbiz-13.07.02 zip形式的发布包
eclipse-mars.1
步骤:
第 1 步:在 hot-deploy 下创建子目录命名为“helloworld“,这是我们的组件名
第 2 步:在 hot-deploy/helloworld路径下创建 ofbiz-component.xml 文件,格式可以从其它同名文件中拷贝,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<ofbiz-component name="helloworld"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd">
<!-- The name attribute in the <resource-loader> tag can be any string. Here we are setting it as "main". The type attribute tells OFBiz that we will be loading a component. -->
<resource-loader name="main" type="component" />
<!--
webapp name
title: app title 将显示在导航栏上
base-permission:需要哪个权限才可以使用这个应用
location:基准路径
mount-point:挂载点,如http://localhost:8080/helloworld
app-bar-display:是否显示在主应用导航条上,这个是公用ofbiz修饰的一部分
-->
<webapp name="helloworld"
server="default-server"
title="Helloworld"
location="webapp/helloworld"
mount-point="/helloworld"
app-bar-display="true"
base-permission="OFBTOOLS" />
</ofbiz-component>
第 3 步:创建web应用
3.1 在 hot-deploy/helloworld下创建目录webapp(hot-deploy/helloworld/webapp)
3.2 在 webapp 目录下创建一个子目录命名为"helloworld",这个就是我们要开发的 webapp 名称(hot-deploy/helloworld/webapp/helloworld)
注:一个组件可以附加多个web应用
3.3 在你 webapp 下创建 WEB-INF 目录(hot-deploy/helloworld/webapp/helloworld/WEB-INF)
注:OFBiz 的web 应用要有两个配置文件: controller.xml 和 web.xml。这 controller.xml 告诉 OFBiz 从访问者来的不同请求做
不同的事:做什么动作和渲染什么页面。 web.xml 告诉 OFBiz 什么资源对这个 web 应用是有效的和如何处理 web 相关的事情
3.4 创建一个命名为"web.xml"(web.xml 遵守 j2ee web 应用规范),此处的全路径为:hot-deploy/helloworld/webapp/helloworld/WEB-INF/web.xml,格式可以从OFBiz的其它应用中拷贝,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>HelloWorld Application</display-name>
<description>HelloWorld Application of the Open For Business Project</description>
<context-param>
<param-name>webSiteId</param-name>
<param-value>HELLOWORLD</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>helloworld</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://helloworld/widget/HelloWorldScreens.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>
<context-param>
<param-name>entityDelegatorName</param-name><param-value>default</param-value>
<description>The Name of the Entity Delegator to use, defined in entityengine.xml</description>
</context-param>
<filter>
<filter-name>ContextFilter</filter-name>
<display-name>ContextFilter</display-name>
<filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class>
<init-param><param-name>disableContextSecurity</param-name><param-value>N</param-value></init-param>
<init-param>
<param-name>allowedPaths</param-name>
<param-value>/error:/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images:/includes/maincss.css:/js</param-value>
</init-param>
<init-param><param-name>errorCode</param-name><param-value>403</param-value></init-param>
<init-param><param-name>redirectPath</param-name><param-value>/control/main</param-value></init-param>
</filter>
<filter-mapping><filter-name>ContextFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
<listener><listener-class>org.ofbiz.webapp.control.ControlEventListener</listener-class></listener>
<listener><listener-class>org.ofbiz.webapp.control.LoginEventListener</listener-class></listener>
<servlet>
<servlet-name>ControlServlet</servlet-name>
<display-name>ControlServlet</display-name>
<description>Main Control Servlet</description>
<servlet-class>org.ofbiz.webapp.control.ControlServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>ControlServlet</servlet-name><url-pattern>/control/*</url-pattern></servlet-mapping>
<session-config><session-timeout>60</session-timeout><!-- in minutes --></session-config>
</web-app>
3.5 创建controller.xml文件,文件的路径为:hot-deploy/helloworld/webapp/helloworld/WEB-INF/controller.xml,对做过web开发人员而言,这个文件的内容很容易理解,文件的文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd">
<include location="component://common/webcommon/WEB-INF/common-controller.xml" />
<description>HelloWorld Component Site Configuration File</description>
<owner>Open For business Project (c)2005 </owner>
<request-map uri="main">
<security auth="false" https="false"/>
<response name="success" type="view" value="main"/>
</request-map>
<view-map name="main" type="screen" page="component://helloworld/widget/HelloworldScreens.xml#main"/>
</site-conf>
3.6 在组件目录 helloworld中创建一个"widget"(hot-deploy/helloworld/widget)目录,这个目录是用于处理用户界面的,如:forms, menus,和 screens
3.7 在"widget"中创建文件"HelloworldScreens.xml",文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
<screen name="main">
<section>
<widgets>
<label text="This is the first practice."></label>
</widgets>
</section>
</screen>
</screens>
4. 启动OFBiz,可以在OFBiz的目录下执行 java -Xmx256M -jar ofbiz.jar
5. 打开浏览器,输入http://localhost:8080/helloworld/control/main
如果出现“This is the first practice.”,恭喜你,成功了!
好了,到这里我们已经构建出了一个最简化的基于OFBiz的小应用了,相关配置项的含义待有时间再慢慢写下来。
分享到:
相关推荐
NULL 博文链接:https://lmzf.iteye.com/blog/575969
ofbiz的helloworld例子,网上不好找到比较全的,这个比较全,可以了解ofbiz的整体架构和运行机制。
apache-ofbiz-13.07.02.zip
ofbiz电商框架hello与皮肤定制实例,实现自定义自己的所有主题,包括菜单与内容区域,
Magento 与 Apache OFBiz 集成,兼容 OFBiz-13.07 和主干 在 Apache OFBiz-13.07 和 OFBiz 主干中使用磁电机组件的步骤 启动终端并进入 Apache OFBiz 的主目录 在热部署文件夹中签出 magento 组件 使用命令加载数据...
与hello资源结合使用,这是一个html5后台管理的模块,但实现了ofbiz主题针对具体应用的深度定制方法,里面只有一个页面,但基本思路已经包括在里面,希望大家能不断挖掘
ofbiz入门图文讲解,包括入门helloworld 和使用ofbiz 新建实体 操作数据库对实体增删改查
#ofbiz-lianghh OFBiz 13.07.01
ofbiz 官网文档翻译 ,按照此文档里面的步骤,可以安全快速的编译自己的第一个小模块 "Hello World",一开始是很抵触的,但是学着学着发现其实框架道理是相似的,为了将代码解耦,每个框架都有自己的独特解耦之道和...
OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门OFBIZ快速入门
ofbiz权限非常介绍,ofbiz进阶之权限介绍!
Apache-OFBiz 13.07.01 for Yunohost 此版本不使用 SSO 和 OpenLDAP,因此您需要与 admin(pswd:ofbiz) 连接。
Ofbiz的Lookup字段,讲解ofbiz辅助输入,包括文本,选择框,日期,时间,主从文本框。后面还介绍一下自定义修改的Lookup
Ofbiz(http://www.ofbiz.org) 是 Open Source 的商务软件系统,充分利用了各优秀的的Open Source 项目, 像 Tomcat, Ant, BeanShell, Jboss 等,构建了一个...Ofbiz 宣称的优点之一是用 很少的 Code 完成复杂的处理。
里面是下载地址,如果逆向开发ofbiz,只要下载它就绝对没错了 Apache+OFBiz+开发初学者指南.rar OFBiz开发快速入门.rar OFBiz-技术文档.rar OFBiz API中文版.rar Apache OFBiz Cookbook Sep 2010.rar Opentaps ...
ofbiz的获取与部署,主要用到了gradle 和 eclipse,注意:cmd部署时,需要一个较好的网络环境以下载gradle
此插件支持 OFBiz 13.07 及更高版本。 OFBiz 连接为您提供快速实施和轻松管理在您的 Magento 商店中放置的订单并在 OFBiz OMS 中完成它们。 请联系 HotWax Systems 以获取有关将您的 Magento 商店连接到 OFBiz OMS...
自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,自学整理的ofbiz学习笔记,适合初学者,可以下个看看
apache-ofbiz-16.11.02.zip,ofbiz菜鸟笔记,Apache+OFBiz+开发初学者指南.chm
ofbiz jar file, some jars for ofbiz