由于項目原因, 結識了OFBiz. OFBiz? 這是個(gè)什么東東?先從它的英文簡(jiǎn)寫(xiě)說(shuō)起.OFBiz是"Open For Business"的縮寫(xiě), 它是Apache的一個(gè)項目, 更詳細的信息可從這個(gè)鏈接里看到:http://ofbiz.apache.org/.基于這個(gè)開(kāi)源項目,我們可以方便快捷地開(kāi)發(fā)出整個(gè)業(yè)務(wù)流程所需的一 系列功能:ERP,CRM,E-Business / E-Commerce,SCM,MRP,CMMS/EAM.
這個(gè)東東有什么優(yōu)勢呢?說(shuō)到優(yōu)勢得看跟誰(shuí)比,又都比哪些方面? 對這個(gè)問(wèn)題我也有很大的疑問(wèn).這個(gè)項目從2003年開(kāi)始到現在最起碼來(lái)說(shuō)在國內一直沒(méi)見(jiàn)火起來(lái).是中國的特殊環(huán)境?(不喜歡用開(kāi)源,開(kāi)源的東西不好吆呵, 你總不能要開(kāi)源的東西向客戶(hù)要高價(jià)吧?而且也沒(méi)有那么玄目的新名詞) ,.跟現在大家很熟悉的名詞有什么聯(lián)系?像JSP,JSF,Ajax,Struts,Hibernate,EJB,Spring... 現在我能體會(huì )到的是,用OFBiz開(kāi)發(fā)時(shí)不用頻繁地重啟服務(wù)器,一些文件修改后下一次訪(fǎng)問(wèn)時(shí)可直接與未改文件"會(huì )師",用為數不多的代碼實(shí)現一些基本功 能. ... 還有一個(gè)大大的優(yōu)點(diǎn):OFBiz把PHP世界編程里的方便快捷與Java世界編程里的層次分明給很好地結合了起來(lái),這個(gè)我已感覺(jué)到了.
這個(gè)話(huà)題太大現在還不可能描述的很詳細,先放一放,畢竟本篇的重點(diǎn)是先用OFBiz寫(xiě)一個(gè)Hello World,以對OFBiz有個(gè)直觀(guān)的體會(huì ).
在寫(xiě)Hello World之前先要把OFBiz下載下來(lái), 下載有很多選擇,我是從http://build.hotwaxmedia.com/這個(gè)鏈接里下載,下載后解壓到一目錄,我們稱(chēng)之為 "OFBIZ_HOME",在我機子上這個(gè)目錄是"E:\ERP\ofbiz-trunk-current\ofbiz-trunk",
我們先對這個(gè)目錄下的文件(夾)有個(gè)大致的了解."OFBIZ_HOME"目錄下當前要關(guān)注的幾個(gè)文件 (夾):applications,framework,hot-deploy,runtime,startofbiz.bat.
按重要/常用程度依次介如下: 這里邊的hot-deploy就是我們往里寫(xiě)/放程序的地兒; 而runtime下的catalina文件夾里放的是jsp生成的java和class文件;logs里放的是ofbiz的日志,出錯時(shí)我們??催@里的 error.log文件;framework我感覺(jué)是整個(gè)ofbiz的核心,當然里面也放有例子(example),有時(shí)我們參考這個(gè)example下的 文件;application用的最少, 可能是程序開(kāi)發(fā)后真正要運行的地兒;startofbiz.bat就是ofbiz的啟動(dòng)腳本了.
上面我們對目錄下的文件有了個(gè)大致了解,下面就動(dòng)手寫(xiě)一個(gè)helloWorld.
Step1: 在hot-deploy下,新建一名為"myHelloWorld"的文件夾,后續的文件(夾)都是加在這個(gè)文件夾下的.
Step2: 在剛建的文件夾下新建一個(gè)名為"ofbiz-component.xml"的文件, 感覺(jué)這個(gè)文件與ofbiz的關(guān)系像web.xm與servlet容器的關(guān)系.在文件ofbiz-component.xml里寫(xiě)如下內容:
<?xml version="1.0" encoding="UTF-8"?>
<ofbiz-component name="myHelloWorld"
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="myHelloWorld"
title="myHelloWorld"
server="default-server"
base-permission="OFBTOOLS"
location="webapp/myHelloWorld"
mount-point="/myHelloWorld"
app-bar-display="false"/>
</ofbiz-component>
先不必關(guān)心這里的配置都代表什么意思.
Step3: 在"myHelloWorld"文件夾下新建名為"webapp"文件夾,我們現在要做的是web程序嘛.
Step4: 在Step3新建的文件夾里新建文件夾"myHelloWorld",感覺(jué)這一塊就很像往Tomcat里部署程序了,我們會(huì )在這里加WEB-INF文件 夾,error文件夾,index.jsp文件,這都很熟悉了.
Step5: error文件夾和index.jsp文件可以直接從framework下的example里拷過(guò)來(lái).
Step6: 新建WEB-INF(在Step4新建的"myHelloWorld"文件夾下)后, 在它下面新建兩個(gè)文件web.xml和controller.xml.web.xml就是我們常見(jiàn)的那個(gè)web.xml, controller.xml文件,顧名思義, 類(lèi)似于struts里的struts.xml.web.xml文件里的內容可從framework下的example里對應文件內部拷過(guò)來(lái),內部一個(gè)字也 不改,當然還是改的好,只是現在那些信息還用不到.controller.xml的內容如下,先這么寫(xiě),待會(huì )再邊做邊往里加些東東.
<?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"/>
<errorpage>/error/error.jsp</errorpage> <!--這個(gè)error.jsp文件用來(lái)顯示報錯作息-->
</site-conf>
Step7: 寫(xiě)到這,基本結構已搭好,下面寫(xiě)要顯示的內部.OFBiz項目剛開(kāi)始時(shí)是以jsp為默認表現層技術(shù)的, 后來(lái)慢慢改成FreeMarker了, 當然也還支持jsp, 現在隨大流兒,用FreeMarker.有webapp下的myHelloWorld文件夾里新建helloWorld.ftl文件,其內容如下:
<h1>HELLO</h1>
<p>Hello world!It works, this is my first OFBiz application! :)</p>
這不就是一個(gè)HTML文件么? 是的, 現在咱們這個(gè)HelloWorld還沒(méi)有用到FreeMarker的東西.
Step8: 要顯示的內容寫(xiě)好了,下面配置下我們就可以瀏覽器里訪(fǎng)問(wèn)了.
在Step6新建的"controller.xml"文件里,"<errorpage>/error/error.jsp< /errorpage>" 一行的下面加如下內部:
<request-map uri="main">
<security https="false" auth="false"/>
<response name="success" type="view" value="main"/>
</request-map>
<view-map name="main" type="ftl" page="/helloWorld.ftl"/>
這個(gè)也不用多解釋,就是圍繞著(zhù)MVC來(lái)配置訪(fǎng)問(wèn)/跳轉路徑.
Step9: OK了, 現在就可以啟動(dòng)OFBiz了(通過(guò)startofbiz.bat腳本文件).如果不出意外的話(huà),就能看到如下所示的效果:
為了方便比照, 把剛建的myHelloWorld文件夾圖片也貼上來(lái).
這篇就先寫(xiě)到這.