翻译文献-ejb 3部署_第1页
翻译文献-ejb 3部署_第2页
翻译文献-ejb 3部署_第3页
翻译文献-ejb 3部署_第4页
翻译文献-ejb 3部署_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外文原文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部署到目前为止,本书都在讲解如果构造EJB、JPA和它们的客户,用于利用EJB容器提供的企业服务。用JAVAEE的说法,这些任务被归入应用程序组件提供者(APPLICATIONCOMPONENTPROVIDER)的角色,它在这里简称为提供者(PROVIDER)。本章讲解的主题围绕把组件打包为模块和库组件,把JAVAEE组件中声明的外部引用绑定到服务器环境中的实际资源,并把它全部发送给应用服务器,以便应用程序在运行时执行组件。这些责任由应用程序装配者(APPLICATIONASSEMBLER,简称装配者)和应用程序部署者(APPLICATIONDEPLOYER,简称部署者)的JAVAEE角色承担。虽然在实际中经常由单一个体扮演一个或者多个这些角色,或者由很多人扮演其中的任何一个角色,但是出于讲解这些主题的目的,我们将把部署任务划分为若干对应这些指定角色的阶段。我们将重点讲解EJB和JPA实体组件,但是也会介绍和部署有关的其它JAVAEE模块类型WEB应用程序模块、应用程序客户和资源适配器。我们还会介绍JAVAEE服务器和它支持的4种JAVAEE容器之间的关系,并且讲解JAVAEE服务器提供的一些服务。我们在部署任务的简要概述中将介绍大部分部署术语,然后,介绍支持部署的JAVAEE基础结构组件JAVAEE服务器和容器。我们讲解JAVAEE模块类型的区别和她它们如何整合在一起,以及如何指定定义每个模块的部署描述文件元数据文件。关于库组件的一节讲解如何声明JAVAEE模块和库组件之间的类路径相关性。然后更加详细地分析装配者(ASSEMBER)和部署者(DEPLOYER)角色,最后总结EJB模块和JPA持久化单元特定的部署需求。阅读完本章之后,你应该能很好地了解如何做到把EJB、JPA和其他应用程序组件组织为JAVAEE模块和库组件。解决外部引用中的命名冲突和冗余。打包由一个或者多个JAVAEE模块和库组件构成的JAVAEE应用程序。声明模块和库之间的类路径相关性。把外部引用绑定到应用服务器环境中的物理资源。111部署工具简介本章提供一些示例,讲解何如构造应用程序档案,但是首先要有软件工具通常通过集成开发环境(INTEGRATEDDEVELOPMENTENVIRONMENT,IDE)提供帮助你汇编和部署JAVAEE应用程序。JAVACOMMUNITYPROCESS(JCP)曾致力于标准化这一领域参见JSR88,JAVAEE应用程序部署API(JAVAEEAPPLIACTIONDEPLOYMENTAPI),但是部署工作不可避免地需要应用服务器特定的配置任务。幸运地是,应用服务器一般提供ANT任务调用它们自己的部署实用程序,并且你也可以使用ANT创建可部署的档案。ANT的使用在很多部署环境中非常流行,并且几乎在需要自动化脚本(把同一个JAVAEE应用程序部署到多个JAVAEE服务器实例)的产品环境中无处不在。本章中很多定制的步骤需要使用交互编辑器,主要用于更新JAVAEE通用的和平台专用的XML部署描述文件。对于这些任务,IDE的价值无法衡量,很多IDE提供平台特定的部署支持,引用你打包、部署和部署JAVAEE应用程序。注释第七章中讲解的APRESS酒类在线(APRESSWINESONLINE)应用程序,以及一些其他应用程序是本书附带的(可以在WWWAPRESSCOM找到),它们演示了如何使用ANT脚本执行本章中介绍的多个部署任务。112部署过程概述部署是这样一过程把JAVAEE组件安装到应用服务器中,以便当你运行你的应用程序时能够找到并且执行它们。这个过程涉及必须大致依次执行的多个任务。下面几节将对这些任务进行概述,在本章后面的章节将详细地讲解它们,并将它们特别地用于EJB和JPA部署。一些步骤只在特定环境下才需要执行,所以实际的部署可能只涉及这些任务的一个子集。1121提供者总的来说,提供者(PROVIDE)(给定工程可能有很多提供者)生成JAVAEE应用程序组件,作为部署的前期准备。和提供者相关的任务以及此角色提供的文件如图111所示。提供者的交付是应用程序组件和可能的模块描述文件,要么作为磁盘上的文件,要么打包到JAR文件中。1122装配者装配者(ASSEMBER)采用提供者的输出,并以此来执行任务和生成交付,如图112所示。1按照容器类型对组件分组以便生成JAVAEE模块提供者的输出是JAVAEE组件集合,比如EJB、JPA实体,JSF(JAVASERVERFACES)页面、应用程序客户类,以及可能的其他。提供者也可能生成非JAVAEE组件,比如普通JAVA类。装配者把JAVAEE组件分到一组,这样每个组只包含一个JAVAEE组件类型。只要提供者定义了模块级别的部署描述(XML)文件,装配者就可以按照此文件中的指令进行分组,装配者也可以选择合并或者拆描述文件,从而增加或者减少每个组内JAVAEE组件的数量。在这个过程结束时,每个生成的组都将成为JAVAEE模块。剩下的非JAVAEE类和资源可以捆绑JAVAEE模块,也可以隔离到它们自己的组中,形成共享的库组件。2定义模块级别的部署描述文件(可选)对于形成的每个JAVAEE模块,装配者可以定义和分配表示此模块的部署描述文件。在JAVAEE5中,这个步骤是可选的,因此此时注释使得通过分析其文件内容来标识模块类型成为可能。例如,你(以提供者或者装配者的角色)可以自由的定义EJBJARXML部署描述文件,但是除非你要覆盖JAVA注释中所捕获的信息,或者选择不使用注释,那么就没这个必要。在JAVAEE5中,EJB模块简单地定义为被注释为STATELESS、STATEFUL或者MESSAGEDRIVEN的文件组中的类的表现。3把组件(和可选的描述文件)打包为JAR文件在这个步骤中,第一个步骤所标识的组件组(和它们的模块级别的部署描述文件,如果定义了的话)被打包为JAR格式的文件。EJB模块归档到以JAR为扩展名的EJBJAR文件中,WEB应用程序模块被归档到以WAR为扩展名的WEB档案(WEBARCHIVE,WAR)文件中,应用程序客户被归档到以JAR为扩展名的JAR文件中,等等。JPA持久化单元可以被归档到它们自己的JAR文件中(以JAR为扩展名),或者直接归档到EJBJAR或WAR文件中。我们将在后章后面的118节中详细介绍此内容。此外,非JAVAEE组件(比如普通JAVA类)可以添加到这些JAVAEE模块档案中,或者装配者可以把它们归档到它们自己的JAR文件中来作为库组件部署。4创建EAR文件(可选)如果你(作为装配者)创建了多个档案,希望用一个逻辑组一起部署它们,那么你需要把这些档案捆绑在包装器JAR文件中,它被称为EAR文件,以EAR为后缀,此EAR文件被引用为JAVAEE应用程序。如果你只创建了一个EJBJAR或者WAR档案,那么就不需要进一步打包。你可以跳过创建包装器EAR文件的步骤,把EJBJAR或者WAR文件作为独立模块部署。应用程序作为打包边界,确保所有模块中的JAVAEE组件能够在单一命名上下文相互通信。JAVAEE应用程序并不一定对应实际的最终用户应用程序(它可能被多个不同客户应用程序使用)但是它允许客户应用程序连接到JAVAEE应用程序并且从单一上下文访问此应用程序中的JAVAEE组件EAR文件可以在其METAINF目录中包含一个应用程序级别的部署描述文件APPLICATIONXML。此文件在JAVAEE5中是可选的,因为现在可以依靠默认规则提供每个模块的默认名称和属性。按照默认,每个模块名称默认为其档案文件名减去文件名后缀(JAR、WAR等)的短名称。定义APPLIACTIONXML描述文件允许你默认名称和属性,并且选择EAR文件中的哪些模块包含在应用程序的特定部署过程中。5装配者待定任务根据每个模块的部署描述文件的完整性和复杂性,可能需要装备配完成或者调整提者声明的一些外部引用。在很多情况下,模块是充分自含和完整的,不需要装配者进行进一步处理,即使是在提供者没有提供部署描述文件的情况下。在更加复杂的部署环境中,当使用提供者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论