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