已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
外文原文EJB3DEPLOYMENTUNTILNOW,THISBOOKHASFOCUSEDONHOWTOBUILDEJBS,JAVAPERSISTENCEAPIJPAENTITIES,ANDTHEIRCLIENTS,FOREXPLOITINGTHESURROUNDINGENTERPRISESERVICESOFFEREDBYTHEEJBCONTAINERINJAVAEEPARLANCE,THESETASKSFALLUNDERTHEROLEOFAPPLICATIONCOMPONENTPROVIDER,WHICHISREFERREDTOHERESIMPLYASTHEPROVIDERINTHISCHAPTER,WEEXPLORETHETOPICSTHATSURROUNDTHEPROCESSOFPACKAGINGYOURCOMPONENTSINTOMODULESANDLIBRARYCOMPONENTS,BINDINGEXTERNALREFERENCESDECLAREDINYOURJAVAEECOMPONENTSTOACTUALRESOURCESINYOURSERVERENVIRONMENT,ANDSENDINGITALLOFFTOANAPPLICATIONSERVERSOTHATTHECOMPONENTSCANBEEXECUTEDATRUNTIMEBYANAPPLICATIONTHESERESPONSIBILITIESAREHANDLEDBYTHEJAVAEEROLESOFTHEAPPLICATIONASSEMBLERTHEASSEMBLERANDTHEAPPLICATIONDEPLOYERTHEDEPLOYERWHILEINPRACTICEITISCOMMONORASINGLEINDIVIDUALTOPERFORMONEORMOREOFTHESEROLES,ORFORMANYPEOPLETOPERFORMANYSINGLEROLE,FORTHEPURPOSEOFEXPLAININGTHESETOPICSWEWILLPARTITIONTHEDEPLOYMENTTASKSINTOSTAGESTHATCORRESPONDTOTHESEDESIGNATEDROLESWEWILLEMPHASIZEEJBANDJPAENTITYCOMPONENTS,BUTALSOTOUCHONDEPLOYMENTOFTHEOTHERJAVAEEMODULETYPESWEBAPPLICATIONMODULES,APPLICATIONCLIENTS,ANDRESOURCEADAPTERSWEWILLALSOLOOKATTHERELATIONSHIPBETWEENTHEJAVAEESERVERANDTHEFOURJAVAEECONTAINERSTHATITSUPPORTS,ANDEXPLORESOMEOFTHESERVICESTHATAREPROVIDEDBYAJAVAEESERVERFOLLOWINGABRIEFOVERVIEWOFTHEDEPLOYMENTTASKS,INWHICHWEINTRODUCEMUCHOFTHEDEPLOYMENTTERMINOLOGY,WEOFFERALOOKATTHEJAVAEEINFRASTRUCTURECOMPONENTSTHEJAVAEESERVERANDCONTAINERSTHATSUPPORTDEPLOYMENTWEEXPLORETHEDIFFERENTTYPESOFJAVAEEMODULESANDHOWTHEYFITTOGETHER,ANDHOWYOUSPECIFYTHEDEPLOYMENTDESCRIPTORSMETADATAFILESTHATDEFINEEACHMODULEASECTIONONLIBRARYCOMPONENTSEXPLAINSHOWTODECLARECLASSPATHDEPENDENCIESBETWEENJAVAEEMODULESANDLIBRARYCOMPONENTSWETHENPROVIDEAMOREDETAILEDEXAMINATIONOFTHEASSEMBLERANDDEPLOYERROLES,ANDCONCLUDEWITHTHEDEPLOYMENTREQUIREMENTSTHATARESPECIFICTOEJBMODULESANDJPAPERSISTENCEUNITSAFTERREADINGTHISCHAPTER,YOUSHOULDHAVEAGOODUNDERSTANDINGOFHOWTODOTHEFOLLOWINGGROUPYOUREJB,JPA,ANDOTHERAPPLICATIONCOMPONENTSINTOJAVAEEMODULESANDLIBRARYCOMPONENTSRESOLVENAMINGCOLLISIONSANDREDUNDANCIESFOUNDINEXTERNALREFERENCESPACKAGEAJAVAEEAPPLICATIONCONSISTINGOFONEORMOREJAVAEEMODULESANDLIBRARYCOMPONENTSDECLARECLASSPATHDEPENDENCIESBETWEENMODULESANDLIBRARIESBINDEXTERNALREFERENCESTOPHYSICALRESOURCESINTHEAPPLICATIONSERVERENVIRONMENTANOTEONDEPLOYMENTTOOLSTHISCHAPTERPROVIDESSOMEEXAMPLESOFHOWTOSTRUCTUREYOURAPPLICATIONARCHIVES,BUTITISASSUMEDTHATYOUHAVEACCESSTOSOFTWARETOOLS,TYPICALLYOFFEREDTHROUGHANINTEGRATEDDEVELOPMENTENVIRONMENTIDE,TOASSISTYOUINTHEASSEMBLYANDDEPLOYMENTOFYOURJAVAEEAPPLICATIONSTHEREHAVEBEENEFFORTSINTHEJAVACOMMUNITYPROCESSJCPTOSTANDARDIZEINTHISAREASEEJSR88,THEJAVAEEAPPLICATIONDEPLOYMENTAPI,BUTDEPLOYMENTINEVITABLYREQUIRESAPPLICATIONSERVERSPECIFICCONFIGURATIONTASKSFORTUNATELY,APPLICATIONSERVERSGENERALLYPROVIDEANTTASKSTOINVOKETHEIROWNDEPLOYMENTUTILITIES,ANDYOUMAYALSOUSEANTTOCREATETHEDEPLOYABLEARCHIVESTHEUSEOFANTISPREVALENTINMANYDEVELOPMENTENVIRONMENTS,ANDISNEARLYUBIQUITOUSINPRODUCTIONENVIRONMENTSINWHICHAUTOMATEDSCRIPTSAREREQUIREDTODEPLOYTHESAMEJAVAEEAPPLICATIONSTOMULTIPLEJAVAEESERVERINSTANCESMANYOFTHECUSTOMIZATIONSTEPSTHATAREDESCRIBEDINTHISCHAPTERREQUIRETHEUSEOFINTERACTIVEEDITORS,MAINLYFORUPDATINGJAVAEEGENERICANDPLATFORMSPECIFICXMLDEPLOYMENTDESCRIPTORSFORTHESETASKS,ANIDECANPROVEINVALUABLE,ANDMANYIDESPROVIDEPLATFORMSPECIFICDEPLOYMENTSUPPORTTHATGUIDESYOUINPACKAGING,CONFIGURING,ANDDEPLOYINGYOURJAVAEEAPPLICATIONSNOTETHEAPRESSWINESONLINEAPPLICATIONCOVEREDINCHAPTER7,ANDSEVERALOTHERSAMPLEAPPLICATIONSTHATACCOMPANYTHISBOOKPROVIDEDATWWWAPRESSCOM,DEMONSTRATETHEUSEOFANTSCRIPTSTOPERFORMMANYOFTHEDEPLOYMENTTASKSDESCRIBEDINTHISCHAPTEROVERVIEWOFTHEDEPLOYMENTPROCESSDEPLOYMENTISTHEPROCESSOFINSTALLINGJAVAEECOMPONENTSINANAPPLICATIONSERVERSOTHATTHEYCANBEFOUNDANDEXECUTEDWHENYOURUNYOURAPPLICATIONTHISPROCESSINVOLVESMULTIPLETASKSTHATMUSTBEPERFORMEDROUGHLYINSEQUENCETHESETASKSARESUMMARIZEDINTHEFOLLOWINGSECTIONS,ANDEACHISDESCRIBEDINGREATERDETAILANDAPPLIEDSPECIFICALLYTOEJBANDJPADEPLOYMENTLATERINTHISCHAPTERSOMESTEPSWILLONLYNEEDTOBEPERFORMEDUNDERSPECIALCIRCUMSTANCES,SOACTUALDEPLOYMENTMAYINVOLVEONLYASUBSETOFTHESETASKSTHEPROVIDERGENERALLYSPEAKING,THEPROVIDERTHEREMAYBEMANYFORAGIVENPROJECTPRODUCESTHEJAVAEEAPPLICATIONCOMPONENTSASAPRECURSORTODEPLOYMENTTHETASKSASSOCIATEDWITHTHEPROVIDER,ALONGWITHTHEFILESDELIVEREDBYTHISROLE,ARESHOWNINFIGURE111FIGURE111TASKSANDDELIVERABLESOFTHEAPPLICATIONCOMPONENTPROVIDERTHEDELIVERABLESFROMTHEPROVIDERAREAPPLICATIONCOMPONENTSANDPOSSIBLYMODULEDESCRIPTORS,EITHERASFILESONDISKORPACKAGEDINTOJAVAARCHIVEJARFILESTHEASSEMBLERTHEASSEMBLERTAKESTHEOUTPUTFROMTHEPROVIDER,ANDWITHITPERFORMSTHETASKSANDPRODUCESTHEDELIVERABLESILLUSTRATEDINFIGURE112FIGURE112DEPLOYMENTTASKSANDDELIVERABLESOFTHEAPPLICATIONASSEMBLERGROUPINGCOMPONENTSBYCONTAINERTYPETOPRODUCEJAVAEEMODULESTHEOUTPUTOFTHEPROVIDERISASETOFJAVAEECOMPONENTS,SUCHASEJBS,JPAENTITIES,JSFJAVASERVERFACESPAGES,APPLICATIONCLIENTCLASSES,ANDPOSSIBLYOTHERSTHEPROVIDERMAYALSOPRODUCENONJAVAEECOMPONENTS,LIKEORDINARYJAVACLASSESTHEASSEMBLERGROUPSTHEJAVAEECOMPONENTSTOGETHERSUCHTHATEACHGROUPCONTAINSCOMPONENTSOFONLYONEJAVAEECOMPONENTTYPEWHENEVERTHEPROVIDERHASDEFINEDAMODULELEVELDEPLOYMENTDESCRIPTORXMLFILE,THEASSEMBLERMAYFOLLOWANYDIRECTIVESINTHATFILETOCOMPOSETHEGROUPS,ORTHEASSEMBLERMAYCHOOSETOEITHERMERGEORSPLITDESCRIPTORSTOINCREASEORDECREASETHENUMBEROFJAVAEECOMPONENTSINEACHGROUPATTHEENDOFTHISPROCESS,EACHRESULTINGGROUPWILLBECOMEAJAVAEEMODULETHENONJAVAEECLASSESANDRESOURCESTHATARELEFTOVERMAYBEBUNDLEDINTOTHEJAVAEEMODULES,ORISOLATEDINTOTHEIROWNGROUPSTOBECOMESHARABLELIBRARYCOMPONENTSDEFININGMODULELEVELDEPLOYMENTDESCRIPTORSOPTIONALFOREACHJAVAEEMODULETHATISFORMED,THEASSEMBLERMAYLOCATEANDASSIGNADEPLOYMENTDESCRIPTORTOREPRESENTTHATMODULEINJAVAEE5,THISSTEPISOPTIONAL,SINCEANNOTATIONSNOWMAKEITPOSSIBLETOIDENTIFYTHEMODULETYPEBYANALYZINGITSFILECONTENTSFORINSTANCE,YOUINTHEROLEOFEITHERTHEPROVIDERORTHEASSEMBLERAREFREETODEFINEANEJBJARXMLDEPLOYMENTDESCRIPTORBUTUNLESSYOUAREOVERRIDINGINFORMATIONTHATISCAPTUREDINJAVAANNOTATIONS,ORYOUHAVECHOSENTONOTUSEANNOTATIONS,ITISNOLONGERNECESSARYINJAVAEE5,ANEJBMODULEISDEFINEDSIMPLYBYTHEPRESENCEOFACLASSINAFILEGROUPTHATISANNOTATEDSTATELESS,STATEFUL,ORMESSAGEDRIVENPACKAGINGCOMPONENTSWITHOPTIONALDESCRIPTORSINTOJARFILESINTHISSTAGE,THECOMPONENTGROUPSIDENTIFIEDINTHEFIRSTSTAGEAREPACKAGED,TOGETHERWITHTHEIRMODULELEVELDEPLOYMENTDESCRIPTORS,IFDEFINED,INTOFILESUSINGTHEJARFORMATEJBMODULESAREARCHIVEDINTOEJBJARFILESWITHAJAREXTENSION,WEBAPPLICATIONMODULESAREARCHIVEDINTOWEBARCHIVEWARFILESWITHAWAREXTENSION,APPLICATIONCLIENTSAREARCHIVEDINTOJARFILESWITHAJAREXTENSION,ANDSOONJPAPERSISTENCEUNITSMAYBEARCHIVEDINTOTHEIROWNJARFILESWITHJAREXTENSIONSORARCHIVEDDIRECTLYINTOEJBJARORWARFILESWELLCOVERTHISDETAILINTHE“ASSEMBLINGAPERSISTENCEUNIT”SECTIONLATERINTHECHAPTERINADDITION,NONJAVAEECOMPONENTS,SUCHASORDINARYJAVACLASSES,MAYBEADDEDTOTHESEJAVAEEMODULEARCHIVESORTHEASSEMBLERMAYARCHIVETHEMINTOTHEIROWNJARFILESTOBEDEPLOYEDASLIBRARYCOMPONENTSCREATINGANENTERPRISEARCHIVEEARFILEOPTIONALIFYOUASTHEASSEMBLERHAVECREATEDMULTIPLEARCHIVESTHATYOUWANTTODEPLOYTOGETHERASALOGICALGROUP,YOUWILLNEEDTOBUNDLETHESEARCHIVESTOGETHERINSIDEAWRAPPERJARFILEKNOWNASANEARFILE,WHICHUSESTHESUFFIXEARTHISEARFILEISREFERREDTOASAJAVAEEAPPLICATIONIFYOUHAVECREATEDONLYASINGLEEJBJARORWARARCHIVE,NOFURTHERPACKAGINGISREQUIREDYOUCANSKIPTHESTEPOFCREATINGAWRAPPEREARFILE,ANDDEPLOYTHEEJBJARORWARFILEASASTANDALONEMODULEANAPPLICATIONACTSASAPACKAGINGBOUNDARY,ENSURINGTHATTHEJAVAEECOMPONENTSINALLMODULESAREABLETOCOMMUNICATEWITHEACHOTHERWITHINASINGLENAMINGCONTEXTAJAVAEEAPPLICATIONDOESNOTNECESSARILYCORRESPONDTOANACTUALENDUSERAPPLICATIONITMAYBEUSEDBYMANYDIFFERENTCLIENTAPPLICATIONSBUTITALLOWSCLIENTAPPLICATIONSTOCONNECTTOTHEJAVAEEAPPLICATIONONCEANDACCESSTHEJAVAEECOMPONENTSINTHATAPPLICATIONFROMASINGLECONTEXTANEARFILEMAYCONTAINANAPPLICATIONLEVELDEPLOYMENTDESCRIPTOR,APPLICATIONXML,INITSMETAINFDIRECTORYTHISFILEISOPTIONALINJAVAEE5,SINCEITISNOWPOSSIBLETORELYONDEFAULTRULESTOPROVIDEDEFAULTNAMESANDPROPERTIESFOREACHMODULEBYDEFAULT,EACHMODULENAMEDEFAULTSTOTHESHORTNAMEOFITSARCHIVEFILE,MINUSTHEFILESUFFIXJAR,WAR,ETCDEFININGANAPPLICATIONXMLDESCRIPTORALLOWSYOUTOREFINETHEDEFAULTNAMESANDPROPERTIES,ANDTOSELECTIVELYCHOOSEWHICHMODULESINTHEEARFILETOINCLUDEINTHEAPPLICATIONFORAPARTICULARDEPLOYMENTASSEMBLERSPECIFICTASKSDEPENDINGONTHECOMPLETENESS,ANDTHECOMPLEXITY,OFTHEDEPLOYMENTDESCRIPTORSFOREACHMODULE,THEASSEMBLERMAYBEREQUIREDTOCOMPLETEORREFINESOMEOFTHEEXTERNALREFERENCESDECLAREDBYTHEPROVIDERINMANYCASES,THEMODULESARESUFFICIENTLYSELFCONTAINEDANDCOMPLETETHATTHEREISNOFURTHERWORKFORTHEASSEMBLERTOPERFORM,EVENWHENADEPLOYMENTDESCRIPTORISNOTSUPPLIEDBYTHEPROVIDERINMORECOMPLEXDEPLOYMENTSCENARIOS,WHENPROVIDERSUPPLIEDDOCUMENTATIONPOSSIBLYCOMMUNICATEDTHROUGHDESCRIPTIONPROPERTIESONEITHERTHEANNOTATIONSORINTHEDEPLOYMENTDESCRIPTORISUSED,THEASSEMBLERMAYNEEDTOCONSOLIDATESEMANTICALLYEQUIVALENTBUTDISPARATELYNAMEDRESOURCESINTOAMINIMAL,DISTINCTSETCONVERSELY,THEASSEMBLERMAYNEEDTOAVOIDRESOURCENAMECOLLISIONSBYRENAMINGRESOURCEREFERENCESTHATSHARETHESAMENAMEBUTHOLDDIFFERENTSEMANTICSFOREXAMPLE,IFTHEASSEMBLERISBUNDLINGTWOJAVAEEMODULESPRODUCEDBYDIFFERENTPROVIDERSINTOASINGLEJAVAEEAPPLICATION,BOTHPROVIDERSMAYREFERENCETHESAMELOGICALEJBBUTUSEDIFFERENTNAMES,ORREFERENCETHEMWITHTHENAMESNOTYETBOUNDITISTHERESPONSIBILITYOFTHEASSEMBLERTODETECTCASESSUCHASTHIS,USINGTHEDOCUMENTATIONPROVIDEDBYTHEPROVIDERS,ANDUPDATETHEEJBREFERENCESTOBINDTOASINGLENAMETHISNAMEMAYBECHOSENBYTHEASSEMBLERANDASSIGNEDTOTHEEJBINTHATAPPLICATIONCONTEXTANYCHANGESMADEBYTHEASSEMBLERAREAPPLIEDONLYTOTHEMODULEANDAPPLICATIONDEPLOYMENTDESCRIPTORFILES,ANDNOTTOTHEJAVASOURCETHISPROCESSWORKSBECAUSEOFTHERULESOFPRECEDENCEDICTATEDBYJAVAEETHATINTHECASEOFCONFLICTINGMETADATAPROPERTIESDEFINEDBOTHINTHEJAVAANNOTATIONSOURCEANDTHEXMLDEPLOYMENTDESCRIPTORS,THEDEPLOYMENTDESCRIPTORSPREVAILTHEASSEMBLERISABLETORESOLVEINCONSISTENCIESINTHEJAVASOURCEBYWORKINGONLYWITHTHEDEPLOYMENTDESCRIPTORFILESTHEDEPLOYERTHETASKSANDDELIVERABLESOFTHEDEPLOYERAREDEPICTEDINFIGURE113FIGURE113TASKSANDDELIVERABLESOFTHEAPPLICATIONDEPLOYERDEPLOYERSPECIFICTASKSUSINGINSTRUCTIONSFROMTHEASSEMBLERANDPROVIDERAGAIN,TYPICALLYCOMMUNICATEDTHROUGHDESCRIPTIONPROPERTIESINTHEDEPLOYMENTDESCRIPTORSORSOURCEANNOTATIONSTHEDEPLOYERISREQUIREDTOBINDALLEXTERNALREFERENCESONTOCONCRETERESOURCESEJBREFERENCES,RESOURCEREFERENCES,PERSISTENCEUNITREFERENCES,ETCINTHETARGETAPPLICATIONSERVERENVIRONMENTONLYTHEDEPLOYERCANPRESUMETOKNOWABOUTTHETARGETSERVERENVIRONMENT,ANDJAVAEEHASDELIBERATELYADDEDALAYEROFINDIRECTIONTOALLRESOURCEUSAGETOALLOWTHISBINDINGTOOCCURWITHOUTAFFECTINGTHEWORKOFEITHERTHEPROVIDERORTHEASSEMBLERTHISISWHYALLRESOURCESUSEDBYTHEJAVAEECOMPONENTSAREREFERREDTOVIAINDIRECTREFERENCESASWASTHECASEWITHTHEASSEMBLER,JAVAEEPOLICYDICTATESTHATTHEDEPLOYERISALLOWEDTOMAKECHANGESONLYTOTHEXMLDEPLOYMENTDESCRIPTORFILES,ANDNOTTOANNOTATIONSINTHEJAVASOURCEINVOKINGTHEAPPLICATIONSERVERSPECIFICDEPLOYMENTTOOLFINALLY,YOURJAVAEEMODULEORYOURJAVAEEAPPLICATIONISREADYTOBESUBMITTEDTOTHEAPPLICATIONSERVERYOURAPPLICATIONSERVERWILLPROVIDEADEPLOYMENTTOOLTHATLETSYOUCOMPLETETHEDEPLOYMENTANDINSTALLTHEJAVAEECOMPONENTSINTHEAPPSERVER,READYTOBEEXECUTEDBYENDUSERAPPLICATIONSDURINGTHISSTAGE,THEDEPLOYMENTTOOLWILLVALIDATETHEMODULESBEINGSUBMITTEDFORINTERNALINTEGRITY,ANDENSURETHATALLRESOURCESCANBEBOUNDTOACTUALOBJECTSTHATRESIDEINTHEAPPLICATIONSERVERENVIRONMENTIFANYREQUIREDRESOURCESCANNOTBELOCATEDATDEPLOYTIME,ORIFREFERENCEDLIBRARYCOMPONENTSARENOTFOUND,THEDEPLOYMENTWILLFAILSUMMARYOFOVERVIEWJAVAEEDEPLOYMENTLETSYOUDEPLOYINDIVIDUALMODULES,LIBRARYCOMPONENTS,ORCOMPLETEAPPLICATIONSINMANYCASES,ADEPLOYMENTMAYSIMPLYINVOLVEPACKAGINGTHECOMPILEDSOURCE,TOGETHERWITHTHEDESCRIPTORSAPERSISTENCEXMLFILEISMANDATORYFORPERSISTENCEUNITS,BUTANEJBJARXMLFILEISOPTIONALFOREJBJARFILES,ANDSUBMITTINGTOADEPLOYMENTTOOLWHENASSEMBLINGAPPLICATIONSFROMMULTIPLEMODULESTHATMAYHAVEBEENBUILTBYDIFFERENTCOMPONENTPROVIDERSANDMAYBEOFDIFFERINGVERSIONS,THEASSEMBLERROLETAKESONGREATERIMPORTANCEJAVAEEDEPLOYMENTINFRASTRUCTURENOWTHATWEHAVESUMMARIZEDTHEDEPLOYMENTPROCESS,LETUSEXPLORESOMEAREASOFTHEJAVAEEINFRASTRUCTURETHATARECENTRALTODEPLOYMENTANUNDERSTANDINGOFTHISTOPICISUSEFULWHENITCOMESTIMETOMAKEYOUROWNDECISIONSABOUTHOWTOPACKAGEYOURCODEINTOMODULES,ANDRESOLVEANDBINDEXTERNALREFERENCESTHEJAVAEESERVERTHEJAVAEESERVERISTHEPROGRAMRUNNINGINSIDEYOURAPPLICATIONSERVERTHATPROVIDESENTERPRISESERVICESTOYOURJAVAEECOMPONENTSWHENTHEYARERUNTHEJAVAEESERVERISALSORESPONSIBLEFORHANDLINGDEPLOYMENTREQUESTSANDREDIRECTINGTHEMTOTHEJAVAEECONTAINERSTHATITHOSTSTHEJAVAEESPECDEFINESTHELISTOFCORESERVICESTHATMUSTBESUPPORTEDBYAJAVAEESERVERTHESEINCLUDEMESSAGING,DATABASE,SECURITY,TRANSACTION,PERSISTENCE,ANDMANYOTHERSERVICESTHEJAVAEESERVERMAYALSOBEEXTENDEDTOPROVIDEADDITIONALSERVICES,ORALTERNATIVEIMPLEMENTATIONSOFEXISTINGSERVICES,BEYONDTHOSEMANDATEDBYTHESPECJAVAEEDEFINESHOWASERVERMAYBEEXTENDEDTOPROVIDEITSCONTAINERSWITHACCESSTOREMOTEANDEXTERNALSERVICES,BYADAPTINGTHEMINTOTHEJAVAEEENVIRONMENTUSINGRESOURCEADAPTERSTHROUGHTHEJAVAEECONNECTORAPITHEJAVAEECONTAINERSTHEPRIMARYPURPOSEOFTHEJAVAEESERVERISTOSUPPORTJAVAEECONTAINERS,WHICHPROVIDETHEENVIRONMENTSINWHICHJAVAEECOMPONENTSARERUNJAVAEE5SPECIFIESSUPPORTFORFOURJAVAEECONTAINERSEJB,WEB,APPLICATIONCLIENT,ANDAPPLETWHILETHEEJBANDWEBCONTAINERSEXECUTEINTHEAPPLICATIONSERVERRUNNINGINTHEMIDDLETIER,THEAPPLICATIONCLIENTCONTAINERTYPICALLYEXECUTESINAJAVASEENVIRONMENTONTHECLIENTTIER,ANDTHEAPPLETCONTAINERTYPICALLYRUNSINSIDEAWEBBROWSERNONETHELESS,THEYALLRELYONTHEIRUNDERLYINGJAVAEESERVERFORTHEMANYENTERPRISESERVICESTHATTHEYINTURNPROVIDE,THROUGHAPIS,TOTHECOMPONENTSTHATEXECUTEINSIDETHEIRCONTAINERENVIRONMENTFORINSTANCE,AJAVAEESERVERPROVIDESNATIVEMESSAGINGSERVICESTOAJAVAEECONTAINER,ANDTHECONTAINEREXPOSESMESSAGINGSERVICESTOITSCOMPONENTSTHROUGHTHEJMSJAVAMESSAGESERVICEAPISIMILARLY,THECONTAINEREXPOSESDATABASESERVICESTHROUGHJAVADATABASECONNECTIVITYJDBC,TRANSACTIONSERVICESTHROUGHJAVATRANSACTIONAPIJTA,ANDSOONTHEJAVAEECONTAINERSALSOINTERPOSEONALLCOMMUNICATIONBETWEENJAVAEEAPPLICATIONCOMPONENTSEXECUTINGINJAVAEECONTAINERS,TOPROVIDECOMPONENTANDRESOURCEINJECTIONINADDITIONTOTHEMANYBUILTINSERVICESOFFEREDTOJAVAEECOMPONENTSBYTHEJAVAEECONTAINERS,JAVAEEALLOWSFORTHEINTEGRATIONOFTHIRDPARTYSERVICESTHROUGHRESOURCEADAPTERSANDTHECONNECTORAPITHATAREEXPOSEDTOJAVAEECOMPONENTSTHROUGHTHEIRCONTAINERSUSINGTHEJAVAEESERVICEPROVIDERINTERFACESPI中文翻譯EJB3部署到目前為止,本書都在講解如果構(gòu)造EJB、JPA和它們的客戶,用于利用EJB容器提供的企業(yè)服務(wù)。用JAVAEE的說法,這些任務(wù)被歸入應(yīng)用程序組件提供者(APPLICATIONCOMPONENTPROVIDER)的角色,它在這里簡稱為提供者(PROVIDER)。本章講解的主題圍繞把組件打包為模塊和庫組件,把JAVAEE組件中聲明的外部引用綁定到服務(wù)器環(huán)境中的實際資源,并把它全部發(fā)送給應(yīng)用服務(wù)器,以便應(yīng)用程序在運行時執(zhí)行組件。這些責(zé)任由應(yīng)用程序裝配者(APPLICATIONASSEMBLER,簡稱裝配者)和應(yīng)用程序部署者(APPLICATIONDEPLOYER,簡稱部署者)的JAVAEE角色承擔(dān)。雖然在實際中經(jīng)常由單一個體扮演一個或者多個這些角色,或者由很多人扮演其中的任何一個角色,但是出于講解這些主題的目的,我們將把部署任務(wù)劃分為若干對應(yīng)這些指定角色的階段。我們將重點講解EJB和JPA實體組件,但是也會介紹和部署有關(guān)的其它JAVAEE模塊類型WEB應(yīng)用程序模塊、應(yīng)用程序客戶和資源適配器。我們還會介紹JAVAEE服務(wù)器和它支持的4種JAVAEE容器之間的關(guān)系,并且講解JAVAEE服務(wù)器提供的一些服務(wù)。我們在部署任務(wù)的簡要概述中將介紹大部分部署術(shù)語,然后,介紹支持部署的JAVAEE基礎(chǔ)結(jié)構(gòu)組件JAVAEE服務(wù)器和容器。我們講解JAVAEE模塊類型的區(qū)別和她它們?nèi)绾握显谝黄?,以及如何指定定義每個模塊的部署描述文件元數(shù)據(jù)文件。關(guān)于庫組件的一節(jié)講解如何聲明JAVAEE模塊和庫組件之間的類路徑相關(guān)性。然后更加詳細(xì)地分析裝配者(ASSEMBER)和部署者(DEPLOYER)角色,最后總結(jié)EJB模塊和JPA持久化單元特定的部署需求。閱讀完本章之后,你應(yīng)該能很好地了解如何做到把EJB、JPA和其他應(yīng)用程序組件組織為JAVAEE模塊和庫組件。解決外部引用中的命名沖突和冗余。打包由一個或者多個JAVAEE模塊和庫組件構(gòu)成的JAVAEE應(yīng)用程序。聲明模塊和庫之間的類路徑相關(guān)性。把外部引用綁定到應(yīng)用服務(wù)器環(huán)境中的物理資源。111部署工具簡介本章提供一些示例,講解何如構(gòu)造應(yīng)用程序檔案,但是首先要有軟件工具通常通過集成開發(fā)環(huán)境(INTEGRATEDDEVELOPMENTENVIRONMENT,IDE)提供幫助你匯編和部署JAVAEE應(yīng)用程序。JAVACOMMUNITYPROCESS(JCP)曾致力于標(biāo)準(zhǔn)化這一領(lǐng)域參見JSR88,JAVAEE應(yīng)用程序部署API(JAVAEEAPPLIACTIONDEPLOYMENTAPI),但是部署工作不可避免地需要應(yīng)用服務(wù)器特定的配置任務(wù)。幸運地是,應(yīng)用服務(wù)器一般提供ANT任務(wù)調(diào)用它們自己的部署實用程序,并且你也可以使用ANT創(chuàng)建可部署的檔案。ANT的使用在很多部署環(huán)境中非常流行,并且?guī)缀踉谛枰詣踊_本(把同一個JAVAEE應(yīng)用程序部署到多個JAVAEE服務(wù)器實例)的產(chǎn)品環(huán)境中無處不在。本章中很多定制的步驟需要使用交互編輯器,主要用于更新JAVAEE通用的和平臺專用的XML部署描述文件。對于這些任務(wù),IDE的價值無法衡量,很多IDE提供平臺特定的部署支持,引用你打包、部署和部署JAVAEE應(yīng)用程序。注釋第七章中講解的APRESS酒類在線(APRESSWINESONLINE)應(yīng)用程序,以及一些其他應(yīng)用程序是本書附帶的(可以在WWWAPRESSCOM找到),它們演示了如何使用ANT腳本執(zhí)行本章中介紹的多個部署任務(wù)。112部署過程概述部署是這樣一過程把JAVAEE組件安裝到應(yīng)用服務(wù)器中,以便當(dāng)你運行你的應(yīng)用程序時能夠找到并且執(zhí)行它們。這個過程涉及必須大致依次執(zhí)行的多個任務(wù)。下面幾節(jié)將對這些任務(wù)進(jìn)行概述,在本章后面的章節(jié)將詳細(xì)地講解它們,并將它們特別地用于EJB和JPA部署。一些步驟只在特定環(huán)境下才需要執(zhí)行,所以實際的部署可能只涉及這些任務(wù)的一個子集。1121提供者總的來說,提供者(PROVIDE)(給定工程可能有很多提供者)生成JAVAEE應(yīng)用程序組件,作為部署的前期準(zhǔn)備。和提供者相關(guān)的任務(wù)以及此角色提供的文件如圖111所示。提供者的交付是應(yīng)用程序組件和可能的模塊描述文件,要么作為磁盤上的文件,要么打包到JAR文件中。1122裝配者裝配者(ASSEMBER)采用提供者的輸出,并以此來執(zhí)行任務(wù)和生成交付,如圖112所示。1按照容器類型對組件分組以便生成JAVAEE模塊提供者的輸出是JAVAEE組件集合,比如EJB、JPA實體,JSF(JAVASERVERFACES)頁面、應(yīng)用程序客戶類,以及可能的其他。提供者也可能生成非JAVAEE組件,比如普通JAVA類。裝配者把JAVAEE組件分到一組,這樣每個組只包含一個JAVAEE組件類型。只要提供者定義了模塊級別的部署描述(XML)文件,裝配者就可以按照此文件中的指令進(jìn)行分組,裝配者也可以選擇合并或者拆描述文件,從而增加或者減少每個組內(nèi)JAVAEE組件的數(shù)量。在這個過程結(jié)束時,每個生成的組都將成為JAVAEE模塊。剩下的非JAVAEE類和資源可以捆綁JAVAEE模塊,也可以隔離到它們自己的組中,形成共享的庫組件。2定義模塊級別的部署描述文件(可選)對于形成的每個JAVAEE模塊,裝配者可以定義和分配表示此模塊的部署描述文件。在JAVAEE5中,這個步驟是可選的,因此此時注釋使得通過分析其文件內(nèi)容來標(biāo)識模塊類型成為可能。例如,你(以提供者或者裝配者的角色)可以自由的定義EJBJARXML部署描述文件,但是除非你要覆蓋JAVA注釋中所捕獲的信息,或者選擇不使用注釋,那么就沒這個必要。在JAVAEE5中,EJB模塊簡單地定義為被注釋為STATELESS、STATEFUL或者M(jìn)ESSAGEDRIVEN的文件組中的類的表現(xiàn)。3把組件(和可選的描述文件)打包為JAR文件在這個步驟中,第一個步驟所標(biāo)識的組件組(和它們的模塊級別的部署描述文件,如果定義了的話)被打包為JAR格式的文件。EJB模塊歸檔到以JAR為擴展名的EJBJAR文件中,WEB應(yīng)用程序模塊被歸檔到以WAR為擴展名的WEB檔案(WEBARCHIVE,WAR)文件中,應(yīng)用程序客戶被歸檔到以JAR為擴展名的JAR文件中,等等。JPA持久化單元可以被歸檔到它們自己的JAR文件中(以JAR為擴展名),或者直接歸檔到EJBJAR或WAR文件中。我們將在后章后面的118節(jié)中詳細(xì)介紹此內(nèi)容。此外,非JAVAEE組件(比如普通JAVA類)可以添加到這些JAVAEE模塊檔案中,或者裝配者可以把它們歸檔到它們自己的JAR文件中來作為庫組件部署。4創(chuàng)建EAR文件(可選)如果你(作為裝配者)創(chuàng)建了多個檔案,希望用一個邏輯組一起部署它們,那么你需要把這些檔案捆綁在包裝器JAR文件中,它被稱為EAR文件,以EAR為后綴,此EAR文件被引用為JAVAEE應(yīng)用程序。如果你只創(chuàng)建了一個EJBJAR或者WAR檔案,那么就不需要進(jìn)一步打包。你可以跳過創(chuàng)建包裝器EAR文件的步驟,把EJBJAR或者WAR文件作為獨立模塊部署。應(yīng)用程序作為打包邊界,確保所有模塊中的JAVAEE組件能夠在單一命名上下文相互通信。JAVAEE應(yīng)用程序并不一定對應(yīng)實際的最終用戶應(yīng)用程序(它可能被多個不同客戶應(yīng)用程序使用)但是它允許客戶應(yīng)用程序連接到JAVAEE應(yīng)用程序并且從單一上下文訪問此應(yīng)用程序中的JAVAEE組件EAR文件可以在其METAINF目錄中包含一個應(yīng)用程序級別的部署描述文件APPLICATIONXML。此文件在JAVAEE5中是可選的,因為現(xiàn)在可以依靠默認(rèn)規(guī)則提供每個模塊的默認(rèn)名稱和屬性。按照默認(rèn),每個模塊名稱默認(rèn)為其檔案文件名減去文件名后綴(JAR、WAR等)的短名稱。定義APPLIACTIONXML描述文件允許你默認(rèn)名稱和屬性,并且選擇EAR文件中的哪些模塊包含在應(yīng)用程序的特定部署過程中。5裝配者待定任務(wù)根據(jù)每個模塊的部署描述文件的完整性和復(fù)雜性,可能需要裝備配完成或者調(diào)整提者聲明的一些外部引用。在很多情況下,模塊是充分自含和完整的,不需要裝配者進(jìn)行進(jìn)一步處理,即使是在提供者沒有提供部署描述文件的情況下。在更加復(fù)雜的部署環(huán)境中,當(dāng)使用提供者
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 離宿安全協(xié)議書
- 窗簾店合同范本
- 春游活動協(xié)議書
- 財務(wù)印刷協(xié)議書
- 2025 年大學(xué)食品科學(xué)與工程(食品加工研究)試題及答案
- 2025 年大學(xué)聲學(xué)(聲學(xué)基礎(chǔ))試題及答案
- 社會職能協(xié)議書
- 競業(yè)暫停協(xié)議書
- 李寧簽約協(xié)議書
- 貿(mào)易聯(lián)營協(xié)議書
- 西方思想經(jīng)典導(dǎo)讀智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- 《工程材料》鐵碳合金相圖
- 青海省西寧市2023-2024學(xué)年高一上學(xué)期期末調(diào)研測試數(shù)學(xué)試卷(解析版)
- 判決分析報告
- 駕照體檢表完整版本
- 箱包生產(chǎn)車間管理制度
- 2024屆重慶外國語學(xué)校高一數(shù)學(xué)第一學(xué)期期末檢測模擬試題含解析
- 赫茲伯格-雙因素理論
- 電動機點動與連續(xù)混合的控制線路
- 浙江省建設(shè)工程施工現(xiàn)場安全管理臺賬實例
- 社會主義發(fā)展史知到章節(jié)答案智慧樹2023年齊魯師范學(xué)院
評論
0/150
提交評論