<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kapok

    垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
    http://dev2dev.bea.com.cn/techdoc/wlworkshop/2004102802.html

    本系列的文章,從Documentum業務對象框架(Documentum Business Object Framework,BOF)開始,介紹了用于BEA WebLogic Workshop的Documentum 業務對象控件(Documentum Business Objects Control,DBOC)。

      本文是第2部分,介紹了一些實現上的底層支持技術,討論與Documentum安全性的集成,并研究一些示例代碼。這篇文章是在第一篇文章(可從Ness的Web站點上得到)所介紹的概念基礎上形成的。

      作為Documentum和BEA的合作伙伴,Ness科技受邀在 BEA的Workshop和Documentum基于服務的業務對象之間建立集成。這一集成包括控件、示例應用程序和集成的幫助,所有這些都可以在第一次使用控件時下載并安裝到Workshop中。



      DBOC是怎樣集成到Workshop中的?
      WebLogic Workshop引入了Java控件,把它作為一種封裝業務邏輯、方便地訪問企業資源的方法。為Workshop集成開發環境(IDE)提供的內置平臺控件,可以連接數據庫、EJB、消息隊列等。

      因為BEA致力于推廣控件,所以他們使應用程序開發人員可以容易地建立自己的自定義控件,代表應用程序的具體邏輯,并為開發團隊提供一套一致的工具。

      為了進一步推動Java控件的創新,Workshop的8.12版本引入了一個擴展開發工具包,支持第三方控件和用戶界面組件無縫地集成入WLW環境。DBOC就是這一新的擴展性框架的第一個實現。

      我們會稍花一點時間來討論這是如何辦到的,因為大家可能想做類似的集成工作,把自己的自定義控件集成進IDE,其中可以包含利用DBOC的控件,但是當然不僅限于此。

      在第一次安裝WebLogic Platform 8.12版本時,在BEAHOME\ext_components文件夾里會放入一個 DocumentumBusinessObjectsControlStub.zip文件。

      這個小小的壓縮包里包含有關控件的足夠信息(文本、圖標、下載URL),所以它可以在Workshop的增加控件菜單里顯示。

      

      在準備第一次使用DBOC時, Workshop 會提示它還沒有安裝,然后會下載完整的控件檔案壓縮包DocumentumBusinessObjectsControl.zip,取代原來的存根文件。

      然后,系統就會把BEADocumentumControlProj.jar文件插入當前項目的庫文件夾,這樣項目就可以使用其中的功能了(請看下圖)。

      

      Workshop還會把示例應用程序安裝到BEAHOME\weblogic81\samples\partners\Documentum文件夾。最后,再把DBOC的幫助文件安裝入Workshop的幫助系統,編排文件索引,使得可以在幫助的內容列表的擴展區域里使用DBOC的幫助。

      有關擴展開發工具包的更多詳細信息,可以在Workshop的幫助系統中找到,也可以在dev2dev.bea.com站點在線得到。

      穿戴整齊,卻無處可去
      完成這一步驟后,像大多數控件一樣,會彈出了一個向導,讓您開始填寫信息。

      但是, Documentum 環境要求我們要特別注意幾個項目。和許多其他實用控件(報表生成器之類的)不同,DBOC控件不是自包含的實體,它實際是一個達到更大型的運行系統的橋梁??梢园阉斪鞯綌祿煜到y的連接。您不該試圖把整個數據庫系統拷貝到每個J2EE應用程序項目。相反,您應當指定共享的數據庫服務器的位置,然后訪問這些資源。在使用DBOC的情況下,我們需要指定Documentum基本類庫(DFC)資源在開發人員機器上的位置。DFC只安裝一份非常重要,這樣DFC才不會重復,特別是要考慮到實際只需要Documentum業務對象注冊表(DBOR)的一個實例,這樣所有的業務對象都會包含在一個位置(否則會帶來維護上的麻煩)。

      關于DFC資源,需要了解兩個WebLogic環境。

    • 需要更新Weblogic服務器域的SetDomainEnv.cmd 文件,以便在服務器的Classpath中可以找到DFC的jar文件。
    • 需要設置Workshop IDE 的應用程序屬性,以便IDE識別DFC和BOF資源。這樣, Workshop 可以做一些有用的工作,例如語法檢測、自動完成等。
      DBOC的幫助系統給出了針對具體使用的Documentum版本的完整詳細信息。認真遵守這些說明執行,包括重新啟動Workshop環境后就應當準備就緒。

      探索DBOC
      DBOC使得訪問Documentum基于服務的對象非常簡單。沒有必要聲明(或者根本不需要了解或考慮)home 和remote接口,只需要在向導中回答一些問題,就萬事俱備了。

      

      向導的頭兩步是所有Java控件都需要的公共步驟:

    • 第一步是給控件代表的變量命名。
    • 在第二步,確定是利用現有控件的.jcx文件或者讓向導為您建立一個新的.jcx文件。在上面的屏幕中,我們正在建立一個名為inbox.jcx的新控件。
      在第三步,要提供針對于DBOC的信息。
    • 所有的業務對象都在DBOR中注冊??丶驅ёx取DBOR,并在下拉列表中列出所找到的全部SBO。


      上圖只顯示了默認的Documentum安裝所提供的SBO。而在實際情況下,列表中會顯示出所有從Documentum開發人員網站下載或者自行開發的SBO。
    • 最后,為DFCSessionManager(SessionManager)對象提供訪問SBO所必需的憑證信息。我們會在本文后面詳細介紹這方面內容。
      點擊Create按鈕后,向導就會建立一個指向新的(或現有的)控件文件的變量。在上面的示例中,向導建立了inbox.jcx文件,并把它放在當前項目中。

      控件文件里有什么?
      DBOC不僅僅是SBO外面的簡單包裝器,它還加入了一些所有SBO都需要的實用特性。您的代碼與代表SBO的控件進行交互。

      

      在.jcx文件中的代碼非常簡單:

      需要注意的關鍵一點是,控件文件本身只是擴展了SBO提供的Java接口以及DBOC自身提供的實用代碼。向導對DBOR進行查詢,然后建立新的接口,并把您提供的其他信息作為標簽屬性(docbase、 安全類型、用戶名、口令) 保存在.jcx文件里。當在設計視圖里查看控件實例時,控件的標簽屬性可以在屬性編輯器中使用,可以在其中做任何必要的修改。

      

      當WLW IDE 以圖形方式顯示控件時,它會枚舉控件的所有可用方法,包括來自SBO的方法和來自控件的實用工具方法。

      

      凡是以getSBO… 和setSBO… 前綴開始的方法,都是DBOC自己提供的實用工具方法。可以用這些方法取得和設置控件的屬性。

      需要記住,用這些前綴開始的方法不與SBO對話,它們只是引用控件的屬性。提供這些方法是為了在運行的時候可以使用控件自身的信息。有人可能會說,前綴應當是getSBOControl…和setSBOControl…,但是開發人員一般喜歡簡潔,所以更短的名字保留了下來。所有剩下的方法則都是SBO自身提供的功能。

      SessionManager對象
      SessionManager對象在DFC 5.1中引入,SessionManager對象是Documentum Business Object服務使用的所有會話所必需的接口。它負責集中實體、會話和事務。

      DBOC設計用于減少需要手工編寫的代碼數量。所以,如果還不存在SessionManager對象,DBOC能夠為您建立一個,這是合情合理的。

      SessionManager對象負責表示試圖訪問SBO的Documentum用戶的標識。即使SBO可能是不進行Docbase事務的Java代碼,也是一樣。

      DBOC的安全類型屬性接受三個值,分別代表處理用戶憑證的三個不同方法:

    • Registered Identity
      這個值來自控件向導中選擇“Use control generated Session Manager with the following identity”(使用控件生成的具有以下標識的Session Manager)。它提供了最簡單的認證方法。SessionManager由控件本身(不是由客戶端代碼)生成??蛻舳酥恍璋延脩鬒D、口令和Docbase設置成控件的屬性。SessionManager會由控件在運行時生成,根據控制中設置的憑證進行連接。
    • Principal Identity
      這個值來自控件向導中選擇“Use control generated SessionManager for principal identity”(使用控件生成的代表主體標識的SessionManager)。這個選項便于使用Documentum的Principal Security。與Registered Identities一樣,SessionManager也是由控件本身自動生成的。

        但是,必須使用控件客戶端來創建并注冊超級用戶的憑證,并注冊IdfPrincipalSupport對象。然后客戶端只需把Principle User帳戶設置為控件的屬性。

        所以,您要提供能讓SessionManager訪問SBO的超級用戶帳戶名稱和口令,還要提供沒有口令的用戶帳戶名稱(主體帳戶)。SessionManager作用的時候,就好像主用戶提供了正確的憑證一樣。所有應用在用戶帳戶上的訪問控制列表也都適用。
        對于超級用戶執行管理性任務來說,這項技術特別有用,因為這些任務需要通過在運行時模擬用戶來訪問用戶數據。
    • Assign SessionManager at Run-Time

        當在控制向導中選擇“Assign SessionManager at Run-Time”(在運行時分配SessionManager)時設置這個值。與前二個選項不同,這個選項要求控件客戶端建立SessionManager對象,并把該對象作為控件的屬性傳入。它給控件客戶端提供了最大的靈活性(當然在客戶端代碼需要的設置代碼也最多)。在代碼的其他地方已有SessionManager對象在使用時,這個選項最有用,有可能是在應用程序開始時設置一次SessionManager,而不用在控件初始化時設置。

      頁面流示例的示例代碼演示了用于以上全部三種場景的技術,可以用作建立自己代碼的指導。

      查看一些示例代碼

      下圖顯示了來自Web服務示例的代碼片斷。這個示例是個簡單的演示,用DBOC訪問用戶的收件箱。它在收件箱項目之間循環,累計計數器,然后把收件箱中項目的數量返回給Web服務。

      雖然這很基礎,但是確實可以作為頁面流示例的基礎,可以采用這個技術,并在其上進行擴展,查詢每個收件箱項目,然后把數據在Web頁面上表示出來。

      在寫這篇文章的時候,關于收件箱SBO,幾乎還沒有公開的文檔,所以這個代碼恰好可以給您一個起步的地方。

      為了讓代碼能夠識別DFC API,需要在代碼頂部加入import語句(一定記得服務器的Classpath已經更新,其中包含這些jar文件)。如果要訪問另外的SBO,就必須更新Classpath,以便把它們也包含進來。

      

      可以看到,下圖是一段混合代碼,既處理控件本身,也處理DFC。

      

      在示例代碼中,變量inbox是擴展SBO并具有DBOC實用工具方法的控件。

      例如,第33行顯示了一條語句如何能夠根據控件的屬性對SBO進行設置:inbox.setDocbase(inbox.getSBODocbase());

      這條語句告訴系統把SBO的Docbase屬性設置成控件的docbase屬性中所包含的值(在設計時設置的)。

      下面,我們開始處理DFC的IInboxCollection和IInboxItem接口。

      在第39行,代碼通過getItem方法,請求控件把所有收件箱項目返回到一個集合。

      要想查看inbox控件其他可以使用的方法,只要輸入inbox和一個句點,然后讓Workshop彈出方法列表(下圖是部分列表)即可。

      

      代碼剩下的部分就非常簡單了;它對集合里的每個項目執行循環,增量計數器。循環完所有項目之后,方法就返回計數值。當然,這全都封閉在Try/Catch塊里,以便捕獲可能發生的任何錯誤。運行這個Web服務示例的結果就是一個簡單的服務響應,在這個例子中,有三個收件箱項目被計數。

      

      一旦您知道了如何與收件箱SBO建立基本的連接,您就可以使用其他收件箱方法了。

      例如,如果您想修改頁面流示例,讓它按照發件人和日期對結果排序,您可以在用getItems方法填充集合之前,添加一個對setSortBy方法的調用。下面的代碼根據發件人降序排列收件箱,在每個發件人里,則按發送日期升序排列。

      inbox.setSortBy("sent_by DESC, date_sent ASC", true );
      IInboxCollection iInboxCollection = inbox.getItems();

      setSortby方法接受二個參數:

    • 第一個參數是一個字符串,定義OrderBy子句,可以簡單到就是一個字段名,也可以復雜到包含多個字段和方向。
    • 第二個參數是一個布爾值,指明是否為更新的OrderBy子句(在這個例子里,必須為true)。


      我們還要去哪里?
      本文對于Documentum業務對象控件做了更進一步的考察。

      Business Object Framework是Documentum的戰略組成部分,DBOC是BOF與J2EE框架集成的第一個實現。就在我們完成的時候,其他使用WebLogic Workshop框架的開發人員可以利用新的擴展開發工作包把他們自己的控件、服務和幫助提供并集成到Workshop IDE中。

      我們已經指出了一些DBOC提供的實用工具方法和安全性選項,利用它們可以在運行時使用SBO,從而實現更大的靈活性。最后,我們還顯示了代碼既需要處理控件本身,也需要處理SBO提供的方法。

      DBOC允許您方便地把Documentum SBO集成到WebLogic Workshop環境。學習了這個集成,只需下載并安裝WebLogic Platform,插入DBOC,修改一些WebLogic服務器的配置,并按照示例教程的指導即可。

      作者注:特別感謝Documentum的Kevin O'Connor,感謝他創建DBOC項目,支持Java控件工作,以及對本系列文章所做的貢獻。

      如果對本文有疑問,,請聯系作者: Alan Zenreich ,電話:201-488-7222 轉160.

      歡迎繼續閱讀本系列的第3部分

      原文出處:
      http://dev2dev.bea.com/products/wlworkshop81/articles/DCMT2.jsp

    posted on 2005-05-07 18:17 笨笨 閱讀(626) 評論(0)  編輯  收藏 所屬分類: J2EE 、ALL 、Weblogic Portal
    主站蜘蛛池模板: 国产又黄又爽胸又大免费视频| 456亚洲人成影院在线观| 日韩在线观看免费| 日韩中文字幕在线免费观看| 亚洲一区二区三区写真| 99视频在线精品免费观看6| 久久久久亚洲国产| 无码免费午夜福利片在线| 亚洲男人天堂2022| 成人免费网站在线观看| 亚洲精品无码久久久久久| 在线jyzzjyzz免费视频| 麻豆亚洲AV成人无码久久精品| 成人免费视频国产| 一级毛片高清免费播放| 亚洲熟妇无码八AV在线播放| 久久精品免费观看国产| 亚洲美女在线观看播放| 久久精品网站免费观看| 亚洲AV无码精品国产成人| 亚洲成av人片在线观看天堂无码| 久久er国产精品免费观看8| 亚洲国产一区国产亚洲| 美女裸身网站免费看免费网站| 77777午夜亚洲| 国产中文在线亚洲精品官网| 免费观看成人久久网免费观看| 亚洲视频中文字幕在线| 香蕉高清免费永久在线视频| 一级毛片视频免费观看| 亚洲欧洲精品一区二区三区| 成人无遮挡毛片免费看| fc2免费人成在线视频| 亚洲网站在线免费观看| 国产午夜无码视频免费网站| 丝瓜app免费下载网址进入ios| 亚洲国产成人综合| 亚洲精品麻豆av| 久草视频在线免费| 精品久久久久久国产免费了| 亚洲一区二区三区国产精品无码|