亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

J2EE應用部署(一):基礎篇

2019-11-18 12:31:50
字體:
來源:轉載
供稿:網友

  提綱:
  一、基礎知識
  1.1 J2EE應用的構成
  1.2 封裝和部署操作的任務
  1.3 不能封裝到EAR文件的組件
  二、類裝載模式
  2.1 在EJB 2.0之前
  2.2 在EJB 2.0之后
  正文:
  一、基礎知識
  1.1 J2EE應用的構成
  J2EE應用由以下兩種資源構成:
  一個或者多個J2EE組件
  一個J2EE應用部署描述器(Deployment Descriptor)
  當多個異種的J2EE組件需要相互調用時,我們必須創建一個J2EE應用。在創建J2EE應用的過程中,有許多事情必須考慮,其中包括:
  有哪些類型的組件可以封裝到J2EE應用里?
  創建J2EE應用的過程中,人們擔負的各種職責。
  當前J2EE封裝技術的局限之處。
  為滿足J2EE組件交互的需要,不同的供給商所采取的類裝載策略。
  J2EE規范區分了兩類資源:可以在容器之內運行的資源,可以封裝到EAR文件內的資源。EAR是EnterPRise application ARchive的縮寫,EAR文件用來把一個或者多個J2EE組件封裝到單個模塊里面,以便一起部署并裝入到服務器上。
  J2EE規范闡明了運行時容器和部署模塊之間的區別。運行時容器是請求級的截取機制,為系統內的組件提供一種基礎服務。部署模塊是一種為那些最終將在運行時容器內執行的組件提供的封裝結構。下圖描述了J2EE容器的結構:
   J2EE應用部署(一):基礎篇
  其中:
  EJB容器
  EJB容器用來容納業務邏輯,并為業務邏輯截取請求。EJB容器支持EJB訪問JMS、JAAS、JTA、javaMail、JAXP、JDBC和連接器(Connector)。
  Web容器
  Web容器截取通過HTTP、FTP、SMTP或其他協議發送的請求。Web應用容器為Servlet和jsp頁面提供的資源與EJB容器提供的資源相同。
  應用客戶端容器
  客戶端應用是獨立的Java應用,它們在遠程的獨立JVM上運行(與Web容器和EJB容器所運行的JVM不同)。應用客戶端容器為這些應用截取請求。
  運行在應用客戶端容器上的程序非常類似于帶有main()方法的Java程序,不過,程序不再由JVM控制,而是由一個容器(也就是應用客戶端容器)控制。
  在應用客戶端容器內運行的程序能夠訪問遠程應用服務器上的JAXP、JDBC、JMS和JAAS資源。
  Applet容器
  Applet容器是一個非凡的容器,它為在瀏覽器內運行的Java程序截取請求。Applet容器不提供任何對其他資源(比如JDBC或JMS)的訪問。在Applet容器內運行的Applet必須自己直接向應用服務器請求資源(而不是把請求發送給容器,然后由容器發送請求給應用服務器)。
  對于Applet如何與EJB容器進行通信,EJB規范沒有作出任何規定,但J2EE規范有這方面的規定。對于那些想要直接使用EJB的Applet,J2EE規范要求它們使用HTTP隧道。許多應用服務器提供某種形式的HTTP隧道,支持Applet直接使用EJB。
  可以封裝到J2EE EAR文件里面的組件與包含容器的組件之間不存在直接的關聯。J2EE沒有規定EAR文件至少必須包含哪些內容,EAR文件可以由任意數量的以下組件構成:
  
  EJB應用JAR文件
  
  EJB應用JAR文件包含一個或者多個EJB組件。
  
  Web應用WAR文件
  
  一個WAR文件包含一個Web應用。EAR文件可以包含多個Web應用,EAR文件中的每個Web應用必須有一個唯一的部署上下文。EAR文件的部署機制答應指定這類不同的上下文。
  
  應用客戶端JAR文件
  
  應用客戶端JAR文件包含一個預備在應用客戶端容器內運行的獨立Java應用,還包含一個專用的部署描述器,其構成方式和EJB JAR文件的構成方式相似。
  
  應用客戶端JAR文件除了包含運行獨立客戶程序所需要的類之外,還包含訪問JDBC、JMS、JAXP、JAAS和EJB客戶所需要的客戶端庫。
  
  資源適配器RAR文件
  
  資源適配器RAR文件包含了實現企業信息系統JCA(Java Connector Architecture)資源適配器所需要的Java類和本地庫。
  
  資源適配器不在容器內執行。相反,它們應該作為應用服務器和外部企業信息系統之間的橋接軟件執行。
  
  這些組件都在J2EE EAR文件之外分別地開發和打包,且分別擁有自己的部署描述器。然后,J2EE EAR文件通過定制的部署描述器,把一個或者多個這種組件裝配成一個統一的包。
  
  1.2 封裝和部署操作的任務
  
  在EJB、Web應用或其他組件的構造、部署和使用過程中,不同的人擔負著不同的職責。J2EE規范為開發者在創建企業應用過程中的職責定義了范圍廣泛的平臺角色(Platform Role)。盡管角色的數量眾多,但它們不外乎是一種為了更好地規劃和運行一個應用而設計的邏輯劃分,單獨的個人、小組或組織很可能扮演多個角色。在構造、部署使用EAR文件的過程中,常見的角色包括:
  
  J2EE產品提供者
  
  負責實現J2EE平臺,包括在規范中定義的所有J2EE API和其他功能。比如,J2EE應用服務器的供給商。
  
  應用組件提供者
  
  負責提供J2EE組件,例如EJB應用或Web應用。J2EE規范中的許多角色都具有應用組件提供者的特征,比如文檔編寫者、JSP頁面編寫者、資源適配器開發者等。
  
  應用組裝者
  
  負責把一個或者多個J2EE組件打包成EAR文件,構造出J2EE應用。應用組裝者還要負責創建J2EE應用部署描述器,說明應用依靠的各種外部資源,比如類庫、安全角色等。通常,應用組裝者要用到J2EE產品提供者和工具提供者提供的工具。
  
  工具提供者
  
  提供自動化J2EE應用創建、打包、部署過程的工具,例如為EAR文件自動生成部署描述器的工具,自動創建EAR文件的工具。
  
  部署者
  
  負責把Web應用和EJB應用部署到服務器環境上。部署者不負責部署資源適配器包和應用客戶端包,但可能要負責為這些組件進行額外的配置。這些組件雖然被打包成為J2EE EAR文件的一部分,部署企業應用時卻不必考慮。它們是J2EE應用的一部分,但不必象Web應用和EJB容器那樣經過一個“激活”過程。資源適配器包是置入合法JCA實現的簡單庫,雖然它們被打包進J2EE EAR文件,但它們不在J2EE容器環境下運行。因此,由于資源適配器包不包含J2EE容器,它們的激活不需要J2EE部署者的非凡干預。應用客戶端程序在J2EE容器的環境下運行,但它們不部署到應用服務器上。客戶端程序獨立運行,部署者不負責為這些程序配置容器環境。
  
  系統治理員
  
  負責為應用服務器和J2EE應用配置網絡和運行環境,負責監視和維護J2EE應用的運行。
  
  在本文的討論過程中,我們主要的角色是應用組裝者和部署者。
  
  1.3 不能封裝到EAR文件的組件
  
  大多數基于Web的J2EE應用只由Web和EJB應用構成,EAR文件能夠滿足封裝應用的基本需求。然而,EAR文件缺乏封裝復雜J2EE應用的能力,比如,J2EE經常要用到下面這類組件,但它們無法在EAR文件中聲明:
  JDBC DataSource對象。
  JMS ConnectionFactory和Destination對象。
  JMX(Java Management Extension)的MBean。
  在應用服務器之內運行的一些JMS消費者,例如作為Serversession一部分運行的MessageConsumer。
  當應用被部署或卸載時觸發運行的一些類(這些類是供給商提供的私有擴展,沒有在J2EE規范中定義,但供給商一般都提供它們)。
  當前,這些組件必須由系統治理員通過專用治理接口手工配置和部署。隨著時間的推移,這些組件的應用也將日益增加,為了支持應用的整體移植性,讓EAR文件支持這些組件的封裝也變得日益重要。
  二、類裝載模式
  當一個類被引用時,Java虛擬機(JVM)必須裝入被引用的類。JVM利用一個標準的類裝入機制把類裝入內存,這個從源文件裝入Java類的機制稱為類裝載器。Java類可以從磁盤、網絡或其他媒體裝入,它們可以駐留在任何地方。多個類裝載器可以按照父-子關系鏈接在一起,形成一種層次結構。由子類裝載器裝入的類能夠看到(能夠使用)由任意父類裝載器裝入的類;由父類裝載器裝入的類不能看到由任意子類裝載器裝入的類。類裝載器、EAR文件與應用部署有著重要關系,因為應用服務器可能采用專用的類裝載器部署應用模塊。
  假如在一個系統中,Web應用需要訪問某個EJB,它就必須能夠裝入它所需要的那些類。由于這意味著不同模塊之間的依靠關系,為了解決依靠問題,應用服務器必須為EAR類裝載器考慮不同的結構方案。
  獨立的應用程序部署在它自己的類裝載器中。這意味著,假如分別地部署一個Web應用和一個EJB應用,每個應用的類將分別裝入各自的、級別相同的類裝入器,Web應用內的類不能看到另一個類裝載器裝入的類。假如Web應用想要使用那些分開部署的EJB,就會出現問題。
  在EAR文件出現之前,許多開發者先部署EJB,然后以Web應用WEB-INF/lib目錄一部分的形式,再次封裝同一EJB JAR文件。這樣,同一類文件必須放入兩個不同的地方,才能讓應用正常地運行。顯然,這是一種應當避免的情形。EAR文件的引入就是為了解決這個問題。EAR文件不僅是一種方便的封裝格式,而且它還提供了一種非凡的類裝載模式,答應EAR文件內的應用訪問其他應用的類。
  J2EE 1.3規范沒有具體規定EAR類裝載器應該如何運作。在決定類裝入方式時,應用服務器供給商有著很大的自由。實現EAR類裝載器之前,供給商必須決定:
  EAR文件中所有應用的所有類由單一的類裝載器裝入,還是不同應用的文件由不同的類裝載器裝入?
  在EAR文件中的不同應用之間,是否存在類裝載器的父-子關系?例如,假如兩個EJB應用依靠于log4j.jar,那么,是否應該由父類裝載器裝入log4j.jar,由子類裝載器裝入兩個EJB應用,從而維持適當的可見性關系?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品一区二区免费| www国产亚洲精品久久网站| 色一情一乱一区二区| 日韩国产在线播放| 久热精品视频在线免费观看| 亚洲国产精品嫩草影院久久| 欧美性xxxxxxxxx| 国产精品久久久久久久av电影| 97精品视频在线观看| 91福利视频在线观看| 成人午夜一级二级三级| 亚洲成av人片在线观看香蕉| 91成人在线观看国产| 精品毛片三在线观看| 国产在线观看精品一区二区三区| 日韩成人中文字幕在线观看| 亚洲电影在线看| 精品国偷自产在线视频| 欧美黄网免费在线观看| 亚洲区中文字幕| 8x海外华人永久免费日韩内陆视频| 国产情人节一区| 在线观看亚洲区| 国产精品高潮呻吟久久av野狼| 久久欧美在线电影| 欧美视频13p| 日本国产高清不卡| 日韩欧美国产免费播放| 7777免费精品视频| 亚洲精品中文字幕有码专区| 日韩在线观看免费高清| 深夜精品寂寞黄网站在线观看| 日韩高清有码在线| 亚洲国产精久久久久久| 国产亚洲一区二区精品| 社区色欧美激情 | 91免费电影网站| 亚洲а∨天堂久久精品9966| 色偷偷av亚洲男人的天堂| 91精品久久久久久久久久久久久久| 亚洲无线码在线一区观看| 久久精品国产96久久久香蕉| 热久久视久久精品18亚洲精品| 富二代精品短视频| 欧美在线视频一区| 欧美中文字幕在线观看| 欧美贵妇videos办公室| 性欧美长视频免费观看不卡| 国产精品视频99| 91国在线精品国内播放| 中文字幕日韩欧美在线视频| 亚洲国语精品自产拍在线观看| 亚洲系列中文字幕| 一本大道久久加勒比香蕉| 欧美激情亚洲一区| 欧洲s码亚洲m码精品一区| 国产精品福利在线| 久久精品国产2020观看福利| 在线播放国产一区中文字幕剧情欧美| 亚洲美女精品成人在线视频| 中文字幕免费精品一区| 欧美日韩国产中文精品字幕自在自线| 久久精品一本久久99精品| 亚洲www在线观看| 国产mv免费观看入口亚洲| 亚洲电影免费观看| 最近2019年好看中文字幕视频| 国产精品成人aaaaa网站| 久久天天躁狠狠躁夜夜躁| 不卡av电影院| 国产一区二区三区三区在线观看| 福利视频导航一区| 国产精品直播网红| 亚洲国产精品久久久| 26uuu国产精品视频| 成人黄色av免费在线观看| www.国产精品一二区| 久久久免费在线观看| 日韩电影中文字幕在线观看| 久久久久成人精品| 91精品国产91久久久| 亚洲视频视频在线| 国产一区二区黑人欧美xxxx| 久操成人在线视频| 久久久在线视频| 成人精品在线视频| 成人在线观看视频网站| 国产欧美日韩中文字幕| 亚洲人精品午夜在线观看| 欧美老少配视频| 欧美国产在线电影| 欧美中文在线视频| 欧亚精品中文字幕| 成人激情视频在线观看| 日韩美女视频免费在线观看| 91精品国产91久久久久久最新| 亚洲国产中文字幕在线观看| 91久久精品视频| 成人黄色在线免费| 亚洲欧美制服第一页| 国产亚洲欧美另类中文| 国产视频精品xxxx| 久久综合国产精品台湾中文娱乐网| 国产精品专区第二| 在线成人一区二区| 国产精品一区二区三区在线播放| 亚洲乱码一区二区| 精品一区精品二区| 日韩国产欧美精品一区二区三区| 欧美精品videosex性欧美| 国产亚洲视频在线观看| 亚洲va久久久噜噜噜久久天堂| 日韩美女写真福利在线观看| 亚洲欧美变态国产另类| 亚洲第一区第二区| 亚洲跨种族黑人xxx| 亚洲精品在线91| 亚洲美女精品成人在线视频| 亚洲精品自拍偷拍| 久久99亚洲精品| 97人人模人人爽人人喊中文字| 91av在线播放| 国产精品视频中文字幕91| 久久夜精品香蕉| 日韩av最新在线观看| 欧美日韩视频免费播放| 久久久亚洲欧洲日产国码aⅴ| 成人乱人伦精品视频在线观看| 一区二区欧美日韩视频| 精品久久久久久久久久ntr影视| 宅男66日本亚洲欧美视频| 欧美电影第一页| 欧美日韩福利电影| 亚洲国产精品成人va在线观看| 中文字幕国产日韩| 日本一区二区三区在线播放| 日韩成人黄色av| 国产精品爽爽爽| 国产成人亚洲综合| 精品亚洲va在线va天堂资源站| 国产成人精品视| 91成人性视频| 青草青草久热精品视频在线网站| 久久影视三级福利片| 美女国内精品自产拍在线播放| 成人妇女免费播放久久久| 亚洲色图av在线| 亚洲新声在线观看| 97精品国产97久久久久久春色| 最近2019年好看中文字幕视频| 国产网站欧美日韩免费精品在线观看| 精品人伦一区二区三区蜜桃免费| 欧美一性一乱一交一视频| 久久福利视频导航| 在线播放日韩欧美| 精品美女永久免费视频| 人妖精品videosex性欧美| 成人国产精品av| 欧美性xxxx| 草民午夜欧美限制a级福利片| 国产精品精品久久久久久| 成人免费看黄网站| 欧美交受高潮1| 日韩欧美精品免费在线|