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

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

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

    新的起點 新的開始

    快樂生活 !

    Weblogic Server 9新特性:J2EE Libraries 和 Optional Packages(來源網絡)

      J2EE Shared Libraries是Weblogic Server 9.0(下簡稱WLS9)的一個新特性。通過J2EE Shared Libraries可以將一個J2EE模塊共享給其他企業應用(EAR包或EAR包的展開目錄)的J2EE模塊使用。J2EE Shared Library可以是任何類型的J2EE模塊,但推薦設計成企業應用格式。此外還有一種J2EE 1.4的標準共享庫方式,稱為 Optional Packages。Optional Packages提供和J2EE Libraries類似的方式將一個JAR文件共享給多個應用。區別在于 Optional Packages是基于標準的,但不能被當作J2EE模塊使用。optional packages必須通過部署對應的JAR文件方式先被注冊到Domain。注冊好后可以在任意J2EE模塊中通過manifest files來引用這些JAR包。Optional packages和J2EE libraries的區別在于optional packages可以被任何J2EE模塊(EAR, JAR, WAR, or RAR 文檔)或其對應擴展的目錄結構引用。而J2EE libraries只能被企業應用引用。本文通過詳細的說明將指導開發者熟悉這兩種共享方式,并獲得立竿見影的效果。

      本文附件exercise包括J2EE Libraries 和 Optional Packages的練習代碼,可解壓到任意位置。需要預先安裝的軟件只有WLS9正式版,可以到www.bea.com.cn上 免費下載。本練習可在能安裝WLS9的任何操作系統上完成,為了方便起見,文中僅以在Windows上為例。首先配置一個WLS Domain,記得用戶名和密碼要都設為weblogic,端口為7001。然后啟動該Domain,并啟動相應的Console。最后使用 Domain/bin/setDomainEnv.cmd打開一個Prompt窗口,并把目錄切換到你解壓的文件的位置。這樣你就可以按照第五節和六節所 述完成練習。如果想快速看一下練習結果,在solution中有已經配置好的兩個練習的代碼,部署后就可以測試。

    共享模塊的核心:MANIFEST.MF文件
    我們知道在Weblogic上部署的任何J2EE模塊的根目錄中可以有一個名為META-INF的目錄,你可以在一個J2EE模塊的META-INF 目錄下創建一個名為MANIFEST.MF文件,來指定這個J2EE模塊的版本。MANIFEST.MF文件是一個純文本文件,格式大概如下:

      Extension-Name: myOptionalPackage

      Specification-Version: 0.9

      Implementation-Version: 1

      Extension-Name:可選。表示該庫或包的名字。主調應用調用這個應用時需要匹配這個值。如果你不設置這個值,系統將自動使用部署名。

      Specification-Version:可選。定義這個庫或包的規格版本。主調應用可以為共享模塊隨便指定一個規格版本。如果這個規格版 本不可用,則主調應用不能被部署。規格參數可以有兩種格式。第一種使用主從版本格式,大小版本號用點分割,如"9.0.1.1"。第二種使用文本格式,如 "9011Beta"。如果使用主從版本號格式,主調應用可以配置為共享的模塊吻合一個特定版本,或者一個最小版本,或者一個最新的版本額。如果使用文本 格式,主調應用必須和共享模塊的版本號嚴格吻合。

      Implementation-Version:可選。定義這個庫或包代碼的執行版本號。必須在已經定義了規格版本的情況下才能定義執行版本。執行版本使用和規格版本相同的格式。

      如果你不使用MANIFEST.MF文件或者有些條目沒有指定,可以在命令行中通過weblogic.Deploy進行部署的時候由參數來設 置。在后面的練習中我們將詳細了解如何使用MANIFEST.MF將一個J2EE應用設計為J2EE Libraries或Optional Packages。

    J2EE Libraries and Optional Packages比較
    Optional packages和J2EE Libraries有如下共同點:

      1。在部署的時候都注冊到Domain上。

      2。都支持可選的執行版本和規格版本字符串。

      3。引用J2EE libraries and optional packages的應用可以指定共享文件的版本。

      Optional packages和J2EE Libraries有如下區別:

      1。Optional package是普通的JAR文件,而 J2EE libraries可以是普通JAR文件,J2EE應用,或獨立的J2EE模塊。J2EE libraries可以包括有效地J2EE或WLS部署描述符,而optional package JAR中的任何部署描述符都被忽略了。

      2。任何J2EE應用或模塊可以通過META-INF/MANIFEST.MF引用 optional package。而只有企業應用可以通過weblogic-application.xml引用J2EE library 。

      3。Optional packages可以引用其他Optional packages,而J2EE libraries不能引用其他J2EE libraries。

    最佳實踐
      1。如果需要共享J2EE模塊給多個企業應用應使用J2EE Libraries。

      2。如果要部署獨立的J2EE模塊作為共享庫,應該把模塊打包到企業應用中。這樣可以防止潛在的URI沖突。因為獨立模塊庫的URI來源于不署名。所以在部署時指定一個部署名,當其他應用引用它時作為URI。

      3。如果多個J2EE應用需要共享一些JAVA類,則應該用optional packages。

      4。如果有一些類在本Domain中需要被其他應用調用,而你又不經常升級這些類(比如第三方類),則最好把它們放在Domain的 /lib目錄下,而不是使用J2EE libraries或optional packages機制。在/lib子目錄下的類會在Server啟動時候自動裝載到系統環境變量中。

      5。即使你不打算使用版本需要功能,通常也需要指定一個規格版本和一個執行版本。為庫指定版本可以在做測試時為共享的文件部署多個版本。

      6。通常為每個庫指定一個擴展名,如果你不指定擴展名那系統會自動使用庫的部署名作為擴展名。

      7。當開發了一個Web應用要部署成J2EE應用,應該使用唯一的上下文目錄。如果它的上下文目錄和他依賴的應用的上下文目錄沖突,應該使用EAR的weblogic-application.xml中context-root元素來覆蓋庫的上下文目錄。

    組裝共享的J2EE Library 文件
      幾乎所有獨立的J2EE模塊或企業應用可以被部署成shareable J2EE library,但有如下限制:

      1。不能在一個J2EE library中引用另一個J2EE library.

      2。共享庫不能嵌套。如果你部署一個企業應用作為共享庫,那整個這個企業應用必須被作為一個庫,而不能指定這個企業應用中的某個獨立J2EE模塊為一個獨立的庫。

      3。像其他J2EE模塊和企業應用一樣,J2EE library必須被部署到目標Server或Cluster上去。這意味著庫需要一個有效的J2EE部署描述符和WLS指定的部署描述符。

      4。推薦把J2EE libraries打包成企業應用,而不是獨立的J2EE模塊。因為獨立模塊的URI來自于部署名。默認WLS使用部署壓縮文件的文件名或展開的目錄名作為部署名。

      5。如果你選擇把庫部署成獨立的J2EE模塊,通常應該指定一個部署名并把這個名字作為被應用引用的URI。

    練習開發和部署Shared J2EE Library
      本練習在J2EEShared目錄下。可以看到有兩個目錄,其中SharedLibraryEAR是被調用的shareable J2EE library,CallingLibraryEAR是調用該庫的企業應用。通過把SharedLibraryEAR配置成共享庫, CallingLibraryEAR可以訪問LoanEJB,就像打包在自己的企業應用中。

      1.我們先來開發一個庫應用。
      觀察一下SharedLibraryEAR下面的目錄結構和文件。

      目錄LoanEJB是一個EJB結構。包括一個空的目錄META-INF和一個包含一個JAVA文件Simple.java的目錄data。 LoanEJB\data目錄是放EJB的源代碼,Simple.java中是我手寫的一個Bean類。在目錄LoanEJB下執行java com.bea.wls.ejbgen.EJBGen -descriptorDir META-INF data\Simple.java就會在生成SimpleHome.java,SimpleRemote.java,ejb-jar.xml, weblogic-ejb-jar.xml和ejbgen-build.xml。然后到LoanEJB編譯這幾個CLASS:javac data\*.java,生成根和樁文件。最后執行jar cvf ..\LoanEJB.jar *,打包我們需要的EJB LoanEJB.jar到SharedLibraryEAR目錄。

      目錄APP-INF是一個空的目錄,可以放入當前這個應用需要的第三方包。

      目錄META-INF下包括application.xml和weblogic-application.xml。 application.xml指定了這個應用所包含的只有一個EAR模塊:LoanEJB.jar,以及這個應用的部署名。為了把這個應用做成共享庫, 現在我們創建一個MANIFEST.MF文件,并在里面寫入如下信息:

      Extension-Name: myLib

      Specification-Version: 1.0

      Implementation-Version: 1.0

      然后在J2EEShared下執行java weblogic.appc SharedLibraryEAR,生成可部署的企業應用。

      2.配置 CallingLibraryEAR來引用SharedLibraryEAR模塊。
      觀察一下CallingLibraryEAR下面的目錄結構和文件。

      目錄APP-INF是放企業應用內部公用的類和庫的目錄。在這個練習中不需要使用。

      目錄LoanApproval是一個Web應用。index.jsp用于調用EJB LoanEJB的getString方法,而沒有指定這個EJB是來自本企業應用還是其他庫。如果調用成功,則把在LoanEJB中設置的一個字符串顯示在瀏覽器上。

      目錄META-INF中包括application.xml和weblogic-application.xml。 application.xml指定了這個應用所包含的只有一個Web模塊LoanApproval。在weblogic- application.xml中除了編碼方式,我們還要指定使用的共享庫的名稱。能看到在library-ref中我們指向了 SharedLibraryEAR這個庫myLib。同時在這個文件中我們還能指定庫的規格版本和執行版本,以及是否需要嚴格匹配等。

      在J2EEShared目錄下執行java weblogic.appc -library SharedLibraryEAR CallingLibraryEAR來預編譯JSP。執行后會看到在LoanApproval\WEB-INF\classes下面會生成一個目錄 jsp_servlet包含JSP被編譯成的Servlet__index.class和__error.class。由于在weblogic- application.xml中指定了使用的共享庫,所以appc在調用jspc來編譯JSP的時候能找到調用的EJB LoanEJB的命名空間以及對應類。

      3。部署共享庫和前端企業應用并測試。
      確保你的Server運行的情況下,在J2EEShared下執行下面兩個命令來部署SharedLibraryEAR和CallingLibraryEAR。注意執行以前Console不能使被Look狀態的。

      java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password weblogic -deploy -library SharedLibraryEAR

      執行之后在Console的Deployments部分能看到新添加了一個名為myLib(1.0)的庫,狀態為Installed。

      java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password weblogic -deploy CallingLibraryEAR

      執行之后在Console的Deployments部分能看到新添加了一個名為CallingLibraryEAR的應用,狀態為Active。

      如果部署成功,在Console和Server窗口都不會有報錯。打開一個瀏覽器測試一下:http://localhost:7001/LoanApproval。如果一切正常,會顯示在EJB中設置的那行字符串。

      注意,當需要卸載庫的時候,必須先卸載引用這個包的所有應用,然后Activate Change,然后再Look,并且卸載庫。

    練習開發和部署optional packages
    本練習在OptionalPackages目錄下。可以看到兩個目錄,其中SimpappOptionalPackage是被調用的Optional Packages,SimpappEAR是調用該包的企業應用。通過把SimpappEAR配制成共享包,SimpappOptionalPackage 可以訪問Simpapp類就像打包在自己的企業應用中。  

    • 我們先來開發一個Optional Packages
      觀察一下SimpappOptionalPackage下面的目錄結構和文件。
      目錄META-INF中現在是空的。需要創建一個MANIFEST.MF文件,包括如下內容:
      Extension-Name: myOptionalPackage
      Specification-Version: 0.9
      Implementation-Version: 1

      目錄simp下面包含一個源代碼文件Simpapp.java,里面包含一些業務方法。在OptionalPackages\ SimpappOptionalPackage\下執行javac simp/Simple.java,會在simp目錄下編譯出Simple.class。然后執行jar cvfm simpapp.jar META-INF/MANIFEST.MF *,把這個類打成一個名為simpapp.jar的JAR包。

    • 配置SimpappEAR來引用SimpappOptionalPackage模塊。
        觀察一下SimpappEAR下面的目錄結構和文件。
      目錄APP-INF和我們前面說的一樣,就不贅述。

      目錄META-INF下包括application.xml和weblogic-application.xml。 application.xml指定了這個應用所包含的只有一個Web模塊SimpappWebAp。為了把這個應用做成Optional Packages,現在我們創建一個MANIFEST.MF文件,并在里面寫入如下信息:

      Extension-List: simpapp

      simpapp-Extension-Name: myOptionalPackage

      simpapp-Extension-Specification-Version: 0.9

      然后在OptionalPackages下執行java weblogic.appc -classpath SimpappOptionalPackage/simpapp.jar SimpappEAR,生成可部署的企業應用。注意這次我們沒在appc中使用-library,因為使用 optional packages的時候不需要獲得它的部署描述符。但我們需要指定optional packages模塊的位置放到classpath里編譯JSP。

    • 部署OptionalPackages和前端企業應用并測試。
      確保你的Server運行的情況下,在OptionalPackages下執行下面兩個命令來部署SimpappOptionalPackage和SimpappEAR。注意執行以前Console不能是被Look狀態的。

      java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password weblogic -deploy -library SimpappOptionalPackage\simpapp.jar

      java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password weblogic -deploy SimpappEAR

    如果部署成功,在Console和Server窗口都不會有報錯。打開一個瀏覽器測試一下:http://localhost:7001/SimpappWebApp/。如果一切正常,會顯示在Simple.java中設置的那行字符串。

    posted on 2008-07-23 10:28 advincenting 閱讀(373) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    公告

    Locations of visitors to this pageBlogJava
  • 首頁
  • 新隨筆
  • 聯系
  • 聚合
  • 管理
  • <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿(13)

    隨筆分類(71)

    隨筆檔案(179)

    文章檔案(13)

    新聞分類

    IT人的英語學習網站

    JAVA站點

    優秀個人博客鏈接

    官網學習站點

    生活工作站點

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无码国产精品一区二区免费模式 | 免费中文字幕不卡视频| 亚洲xxxxxx| 免费大片黄在线观看yw| 亚洲国产超清无码专区| 亚洲网站免费观看| 亚洲伊人久久大香线蕉| 国产香蕉九九久久精品免费 | 91亚洲精品自在在线观看| 18观看免费永久视频| 亚洲精品视频观看| 99re热免费精品视频观看 | 蜜臀91精品国产免费观看| 亚洲AV无码之国产精品| 国产一级淫片视频免费看| 黄页网站在线视频免费| 亚洲精品无码久久毛片| 国产精品美女免费视频观看| 国产亚洲成av人片在线观看| 秋霞人成在线观看免费视频 | 亚洲AV无码一区二区三区性色 | 国产成人在线免费观看| 黄色a级免费网站| 亚洲日韩精品A∨片无码| 国产精品爱啪在线线免费观看| 日韩亚洲不卡在线视频中文字幕在线观看| 午夜视频在线观看免费完整版| 亚洲精品黄色视频在线观看免费资源 | 女人隐私秘视频黄www免费| 亚洲AV综合色区无码一区| 无码国产精品一区二区免费式直播| jiz zz在亚洲| 精品亚洲综合久久中文字幕| 国产国产人免费视频成69堂| 极品美女一级毛片免费| 亚洲春色在线视频| 四虎www成人影院免费观看| 美女无遮挡拍拍拍免费视频 | 亚洲春黄在线观看| 亚洲国产精品成人网址天堂| 亚洲精品免费视频|