AquaLogic Data Service Platform(即以前的BEA liquid Data for Weblogic)中可以方便的訪問多種不同的數(shù)據(jù)源,為多種異構(gòu)的數(shù)據(jù)源提供統(tǒng)一視圖,可以經(jīng)過Data Service控件的封閉后給Portal,Integration,JPF等程序提供良好的數(shù)據(jù)層服務(wù)。
這些異構(gòu)數(shù)據(jù)源包括:各種JDBC可以訪問的數(shù)據(jù)庫(kù),Web Services,很多不同類型的文件,包括XML文件,CSV文件,還有普通java類提供的函數(shù)功能。
現(xiàn)在在DSP中加載Excel支持包,可以直接訪問Excel文件,將Excel文件中的數(shù)據(jù)以XmlObject的形式讀出,供J2EE應(yīng)用程序訪問。
下面一步步來(lái)講解在DSP中配置Excel作為數(shù)據(jù)源的過程
基本原理在DSP中訪問Excel是利用Weblogic Server提供的jcom功能來(lái)訪問Excel文件的,其基本原理如下:
在上面的示圖中,我們看到,java應(yīng)用程序是通過JCOM組件來(lái)訪問Windows操作系統(tǒng)中的Com服務(wù)器,再由Com服務(wù)器作為橋梁來(lái)存取磁盤中的Excel文件。
基于由上原理,在使用Excel作為數(shù)據(jù)源時(shí)有幾點(diǎn)限制:
下載與安裝Bea Weblogic Platform 8.1.5,AcquaLogic Data Service Platform 2.0.1,然后利用配置向?qū)Ы⒅С諨SP的域。
建立Data Service
在workshop中建立Data Service的步驟如下:
1.新建DSP應(yīng)用程序
2.加入相關(guān)支持庫(kù):
安裝DSP后在<beahome>\weblogic81\samples\LiquidData\EvalGuide\ excel\lib文件夾中,有兩個(gè)jar包,excel.jar和exceljf_xbean.jar。需要將這兩個(gè)包導(dǎo)入應(yīng)用程序的庫(kù)中。
3.導(dǎo)入Java Functions
在DSP工程下新建functions文件夾,導(dǎo)入文件:
<beahome>\weblogic81\samples\LiquidData\EvalGuide\excel_jcom.java.
*注:新建functions文件夾的目的是因?yàn)閑xcel_jcom.java中使用package functions;
4.編譯整個(gè)項(xiàng)目
編譯整個(gè)項(xiàng)目的目的是將excel_jcom.java生成class文件。
5.導(dǎo)入元數(shù)據(jù)
在functions文件夾上點(diǎn)鍵,選“import Source MetaData …”
數(shù)據(jù)源類型選擇:Java Function
下一步:
輸入類名:
在選Java文件中,下一步,選中Java Functions:“getExcel”,加入到選中Functions列表中。
下一步
完成
數(shù)據(jù)源已經(jīng)建好。
6.測(cè)試
打開測(cè)試視圖
輸入兩個(gè)參數(shù),就getExcel的兩個(gè)參數(shù),第一個(gè)參數(shù)是文件名,第二個(gè)參數(shù)是sheet名,
輸入:x1: c:\BEA\weblogic81\samples\liquiddata\EvalGuide\excel\test.xls
x2:Customers (要區(qū)分大小)
執(zhí)行測(cè)試,
測(cè)試成功。
7.編譯發(fā)布數(shù)據(jù)源。
然后編譯整個(gè)應(yīng)用程序,發(fā)布Data Service
發(fā)布成功可以在ldconsole里查看:
在BMP中測(cè)試Data Service
Data Service發(fā)布后,就可以在其它java程序中直接使用了。其步驟如下:
4.1添加DataService控件
4.2 創(chuàng)建方法
4.3 控件生成
Data Service控件生成后就可以類似使用其它控件一樣方便的使用了。
4.4 使用BMP測(cè)試
BMP流程如下:
部署應(yīng)用程序,開始測(cè)試:
返回XML為:
<exc:excel xmlns:exc="http://www.bea.com/excel"><cells><cell cellID="AAAA:0001">Customer ID</cell><cell cellID="AAAB:0001">Customer name</cell><cell cellID="AAAC:0001">City</cell><cell cellID="AAAD:0001">Sales People ID</cell><cell cellID="AAAA:0002">2001.0</cell><cell cellID="AAAB:0002">Hoffman</cell><cell cellID="AAAC:0002">London</cell><cell cellID="AAAD:0002">1001.0</cell><cell cellID="AAAA:0003">2002.0</cell><cell cellID="AAAB:0003">Alex</cell><cell cellID="AAAC:0003">Rome</cell><cell cellID="AAAD:0003">1003.0</cell><cell cellID="AAAA:0004">2003.0</cell><cell cellID="AAAB:0004">Liu</cell><cell cellID="AAAC:0004">San Jose</cell><cell cellID="AAAD:0004">1002.0</cell><cell cellID="AAAA:0005">2004.0</cell><cell cellID="AAAB:0005">Grass</cell><cell cellID="AAAC:0005">Berlin</cell><cell cellID="AAAD:0005">1002.0</cell><cell cellID="AAAA:0006">2006.0</cell><cell cellID="AAAB:0006">Clements</cell><cell cellID="AAAC:0006">London</cell><cell cellID="AAAD:0006">1001.0</cell><cell cellID="AAAA:0007">2008.0</cell><cell cellID="AAAB:0007">Cisneros</cell><cell cellID="AAAC:0007">San Jose</cell><cell cellID="AAAD:0007">1007.0</cell><cell cellID="AAAA:0008">2007.0</cell><cell cellID="AAAB:0008">Pereira</cell><cell cellID="AAAC:0008">Rome</cell><cell cellID="AAAD:0008">1004.0</cell><cell cellID="AAAA:0009">14031.0</cell><cell cellID="AAAB:0009"/><cell cellID="AAAC:0009"/><cell cellID="AAAD:0009"/><cell cellID="AAAA:0010"/><cell cellID="AAAB:0010"/><cell cellID="AAAC:0010"/><cell cellID="AAAD:0010"/><cell cellID="AAAA:0011">Amount of customer</cell><cell cellID="AAAB:0011"/><cell cellID="AAAC:0011">7.0</cell><cell cellID="AAAD:0011"/><cell cellID="AAAA:0012">Minimum of rating</cell><cell cellID="AAAB:0012"/><cell cellID="AAAC:0012">1001.0</cell><cell cellID="AAAD:0012"/><cell cellID="AAAA:0013">Maximum of rating</cell><cell cellID="AAAB:0013"/><cell cellID="AAAC:0013">1007.0</cell><cell cellID="AAAD:0013"/><cell cellID="AAAA:0014">Average of rating</cell><cell cellID="AAAB:0014"/><cell cellID="AAAC:0014">1002.8571428571429</cell><cell cellID="AAAD:0014"/><cell cellID="AAAA:0015"/><cell cellID="AAAB:0015"/><cell cellID="AAAC:0015"/><cell cellID="AAAD:0015"/></cells><row rowID="0001" rowNumber="1"><col columnID="AAAA" columnName="A">Customer ID</col><col columnID="AAAB" columnName="B">Customer name</col><col columnID="AAAC" columnName="C">City</col><col columnID="AAAD" columnName="D">Sales People ID</col></row><row rowID="0002" rowNumber="2"><col columnID="AAAA" columnName="A">2001.0</col><col columnID="AAAB" columnName="B">Hoffman</col><col columnID="AAAC" columnName="C">London</col><col columnID="AAAD" columnName="D">1001.0</col></row><row rowID="0003" rowNumber="3"><col columnID="AAAA" columnName="A">2002.0</col><col columnID="AAAB" columnName="B">Alex</col><col columnID="AAAC" columnName="C">Rome</col><col columnID="AAAD" columnName="D">1003.0</col></row><row rowID="0004" rowNumber="4"><col columnID="AAAA" columnName="A">2003.0</col><col columnID="AAAB" columnName="B">Liu</col><col columnID="AAAC" columnName="C">San Jose</col><col columnID="AAAD" columnName="D">1002.0</col></row><row rowID="0005" rowNumber="5"><col columnID="AAAA" columnName="A">2004.0</col><col columnID="AAAB" columnName="B">Grass</col><col columnID="AAAC" columnName="C">Berlin</col><col columnID="AAAD" columnName="D">1002.0</col></row><row rowID="0006" rowNumber="6"><col columnID="AAAA" columnName="A">2006.0</col><col columnID="AAAB" columnName="B">Clements</col><col columnID="AAAC" columnName="C">London</col><col columnID="AAAD" columnName="D">1001.0</col></row><row rowID="0007" rowNumber="7"><col columnID="AAAA" columnName="A">2008.0</col><col columnID="AAAB" columnName="B">Cisneros</col><col columnID="AAAC" columnName="C">San Jose</col><col columnID="AAAD" columnName="D">1007.0</col></row><row rowID="0008" rowNumber="8"><col columnID="AAAA" columnName="A">2007.0</col><col columnID="AAAB" columnName="B">Pereira</col><col columnID="AAAC" columnName="C">Rome</col><col columnID="AAAD" columnName="D">1004.0</col></row><row rowID="0009" rowNumber="9"><col columnID="AAAA" columnName="A">14031.0</col><col columnID="AAAB" columnName="B"/><col columnID="AAAC" columnName="C"/><col columnID="AAAD" columnName="D"/></row><row rowID="0010" rowNumber="10"><col columnID="AAAA" columnName="A"/><col columnID="AAAB" columnName="B"/><col columnID="AAAC" columnName="C"/><col columnID="AAAD" columnName="D"/></row><row rowID="0011" rowNumber="11"><col columnID="AAAA" columnName="A">Amount of customer</col><col columnID="AAAB" columnName="B"/><col columnID="AAAC" columnName="C">7.0</col><col columnID="AAAD" columnName="D"/></row><row rowID="0012" rowNumber="12"><col columnID="AAAA" columnName="A">Minimum of rating</col><col columnID="AAAB" columnName="B"/><col columnID="AAAC" columnName="C">1001.0</col><col columnID="AAAD" columnName="D"/></row><row rowID="0013" rowNumber="13"><col columnID="AAAA" columnName="A">Maximum of rating</col><col columnID="AAAB" columnName="B"/><col columnID="AAAC" columnName="C">1007.0</col><col columnID="AAAD" columnName="D"/></row><row rowID="0014" rowNumber="14"><col columnID="AAAA" columnName="A">Average of rating</col><col columnID="AAAB" columnName="B"/><col columnID="AAAC" columnName="C">1002.8571428571429</col><col columnID="AAAD" columnName="D"/></row><row rowID="0015" rowNumber="15"><col columnID="AAAA" columnName="A"/><col columnID="AAAB" columnName="B"/><col columnID="AAAC" columnName="C"/><col columnID="AAAD" columnName="D"/></row></exc:excel>原文出處:
“AquaLogic Data Services Platform Tutorial: Part II”,
http://dev.bea.com/codelibrary/code/liquiddata_Excel.jsp
作者簡(jiǎn)介 | |
dev2dev ID: nizhigang,BEA系統(tǒng)中國(guó)有限公司技術(shù)顧問,多年J2EE構(gòu)架設(shè)計(jì)與開發(fā)經(jīng)驗(yàn),專注于企業(yè)信息系統(tǒng)建設(shè)、分布式計(jì)算、網(wǎng)絡(luò)、數(shù)據(jù)集成等領(lǐng)域。 可以通過nizhigang2000@gmail.com與他聯(lián)系。 |
![]() |
聯(lián)系客服