




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外文原文CHAPTER3INTRODUCTIONTOSESSIONBEANSINTHISCHAPTER,WELLTAKEOURFIRSTLOOKATENTERPRISEBEANDEVELOPMENTCONCEPTSTHISCHAPTERCOVERSTHEFOLLOWINGTOPICS1WHATANENTERPRISEBEANCOMPONENTISCOMPOSEDOF,INCLUDINGTHEENTERPRISEBEANCLASS,THEREMOTEINTERFACE,THEEJBOBJECT,THEHOMEINTERFACE,THEHOMEOBJECT,THEDEPLOYMENTDESCRIPTOR,THEMANIFEST,ANDTHEEJBJARFILE2THECHARACTERISTICSOFSESSIONBEANSWELLSEEWHATMAKESSESSIONBEANSUNIQUE,ANDWELLINTRODUCETHEDIFFERENCESBETWEENSTATEFULANDSTATELESSSESSIONBEANS3THERULESFORWRITINGSESSIONBEANCLASSES4HOWTOWRITECLIENTCODETOCALLSESSIONBEANSTHISCHAPTERLAYSTHENECESSARYCONCEPTUALFRAMEWORKFORYOUTOBEGINEJBPROGRAMMINGWELLSEECOMPLETECODEEXAMPLESINCHAPTERS4,5,AND631WHATCONSTITUTESANENTERPRISEBEANENTERPRISEBEANSAREDISTRIBUTED,DEPLOYABLESERVERSIDECOMPONENTSTHATCANBEASSEMBLEDINTOLARGERAPPLICATIONSENTERPRISEBEANSCANBEPARTITIONEDACROSSMULTIPLETIERS,CANBETRANSACTIONAL,CANBEMULTIUSERSECURE,ANDCANBEDEPLOYEDINANYEJBCOMPATIBLECONTAINER/SERVERPRODUCTENTERPRISEBEANSCURRENTLYHAVETWOFLAVORSSESSIONBEANSANDENTITYBEANSSESSIONBEANSREPRESENTABUSINESSPROCESS,WHEREASENTITYBEANSREPRESENTPERMANENTBUSINESSDATASUNMICROSYSTEMSMAYINTRODUCEOTHERBEANTYPESINTHEFUTUREASWELLTHISSECTIONEXAMINESEXACTLYWHATCONSTITUTESANENTERPRISEBEANASWEWILLSEE,ANENTERPRISEBEANCOMPONENTISNOTASINGLEMONOLOTHICFILEANUMBEROFFILESWORKTOGETHERTOMAKEUPANENTERPRISEBEAN311THEENTERPRISEBEANCLASSINPARTI,WELEARNEDTHATTHEENTERPRISEJAVABEANSSPECIFICATIONDEFINESTHECONTRACTSBETWEENTHEDIFFERENTPARTIESINVOLVEDINADEPLOYMENTINORDERFORABEANTOWORKINANYCONTAINER,ANDTOWORKWITHANYCLIENTOFTHATBEAN,THEBEANMUSTADHERETOAWELLDEFINEDINTERFACEINEJB,YOUPROVIDEYOURENTERPRISEBEANCOMPONENTIMPLEMENTATIONINANENTERPRISEBEANCLASSTHISISSIMPLYAJAVACLASSTHATCONFORMSTOAWELLDEFINEDINTERFACEANDOBEYSCERTAINRULESANENTERPRISEBEANCLASSCONTAINSIMPLEMENTATIONDETAILSOFYOURCOMPONENTANDALTHOUGHTHEREARENOHARDANDFASTRULESINEJB,ASESSIONBEANIMPLEMENTATIONWILLBEVERYDIFFERENTFROMANENTITYBEANIMPLEMENTATIONFORSESSIONBEANS,ANENTERPRISEBEANCLASSTYPICALLYCONTAINSBUSINESSPROCESSRELATEDLOGIC,SUCHASLOGICTOCOMPUTEPRICES,TRANSFERFUNDSBETWEENBANKACCOUNTS,ORPERFORMORDERENTRYFORENTITYBEANS,ANENTERPRISEBEANCLASSTYPICALLYCONTAINSDATARELATEDLOGIC,SUCHASLOGICTOCHANGETHENAMEOFACUSTOMER,REDUCETHEBALANCEOFABANKACCOUNT,ORMODIFYAPURCHASEORDERTHEEJBSPECIFICATIONDEFINESAFEWSTANDARDINTERFACESTHATYOURBEANCLASSCANIMPLEMENTTHESEINTERFACESFORCEYOURBEANCLASSTOEXPOSECERTAINMETHODSTHATALLBEANSMUSTPROVIDE,ASDEFINEDBYTHEEJBCOMPONENTMODELTHECONTAINERCALLSTHESEREQUIREDMETHODSTOMANAGEYOURBEANANDALERTYOURBEANTOSIGNIFICANTEVENTSTHEMOSTBASICINTERFACETHATALLBEANCLASSESMUSTIMPLEMENTBOTHSESSIONANDENTITYISTHEJAVAXEJBENTERPRISEBEANINTERFACE,SHOWNINSOURCE31THISINTERFACESERVESASAMARKERINTERFACEIMPLEMENTINGTHISINTERFACEINDICATESTHATYOURCLASSISINDEEDANENTERPRISEBEANCLASSTHEINTERESTINGASPECTOFJAVAXEJBENTERPRISEBEANISTHATITEXTENDSJAVAIOSERIALIZABLETHISMEANSTHATALLENTERPRISEBEANSCANBECONVERTEDTOABITBLOBANDSHAREALLTHEPROPERTIESOFSERIALIZABLEOBJECTSDESCRIBEDINAPPENDIXATHISWILLBECOMEIMPORTANTLATER,SOKEEPITINMINDBOTHSESSIONBEANSANDENTITYBEANSHAVEMORESPECIFICINTERFACESTHATEXTENDTHEJAVAXEJBENTERPRISEBEANINTERFACEALLSESSIONBEANSMUSTIMPLEMENTJAVAXEJBSESSIONBEAN,WHILEALLENTITYBEANSMUSTIMPLEMENTJAVAXEJBENTITYBEANWELLSEETHEDETAILSOFTHESEINTERFACESABITLATERFORNOW,KNOWTHATYOURENTERPRISEBEANCLASSNEVERNEEDSTOIMPLEMENTTHEJAVAXEJBENTERPRISEBEANINTERFACEDIRECTLYRATHER,YOURBEANCLASSIMPLEMENTSTHEINTERFACECORRESPONDINGTOITSBEANTYPE312THEEJBOBJECTWHENACLIENTWANTSTOUSEANINSTANCEOFANENTERPRISEBEANCLASS,THECLIENTNEVERINVOKESTHEMETHODDIRECTLYONANACTUALBEANINSTANCERATHER,THEINVOCATIONISINTERCEPTEDBYTHEEJBCONTAINERANDTHENDELEGATEDTOTHEBEANINSTANCETHISHAPPENSFORMANYREASONSYOURENTERPRISEBEANCLASSCANTBECALLEDACROSSTHENETWORKDIRECTLYBECAUSEANENTERPRISEBEANCLASSISNOTNETWORKENABLEDYOUREJBCONTAINERHANDLESNETWORKINGFORYOUBYWRAPPINGYOURBEANINANETWORKENABLEDOBJECTTHENETWORKENABLEDOBJECTRECEIVESCALLSFROMCLIENTSANDDELEGATESTHESECALLSTOINSTANCESOFYOURBEANCLASSTHISSAVESYOUFROMHAVINGTOWORRYABOUTNETWORKINGISSUESTHECONTAINERPROVIDESNETWORKINGASAFREESERVICETOYOUBYINTERCEPTINGREQUESTS,THEEJBCONTAINERCANAUTOMATICALLYPERFORMSOMENECESSARYMANAGEMENTTHISINCLUDESTRANSACTIONLOGIC,SECURITYLOGIC,BEANINSTANCEPOOLINGLOGIC,ANDANYOTHERLOGICTHATTHECONTAINERMAYREQUIRETHEEJBCONTAINERCANTRACKWHICHMETHODSAREINVOKED,DISPLAYAREALTIMEUSAGEGRAPHONASYSTEMADMINISTRATORSUSERINTERFACE,GATHERDATAFORINTELLIGENTLOADBALANCING,ANDMORETHEREISNOREQUIREMENTTHATANEJBCONTAINERPERFORMTHESETASKSBUTBECAUSETHEEJBCONTAINERINTERCEPTSALLMETHODCALLS,THEREISANOPPORTUNITYFORCONTAINERSTOPERFORMTHEMTHUS,THEEJBCONTAINERISACTINGASALAYEROFINDIRECTIONBETWEENTHECLIENTCODEANDTHEBEANTHISLAYEROFINDIRECTIONMANIFESTSITSELFASASINGLENETWORKAWAREOBJECT,CALLEDTHEEJBOBJECTTHEEJBOBJECTISASURROGATEOBJECTTHATKNOWSABOUTNETWORKING,TRANSACTIONS,SECURITY,ANDMOREITISANINTELLIGENTOBJECTTHATKNOWSHOWTOPERFORMINTERMEDIATELOGICTHATTHEEJBCONTAINERREQUIRESBEFOREAMETHODCALLISSERVICEDBYABEANCLASSINSTANCEANEJBOBJECTACTSASGLUEBETWEENTHECLIENTANDTHEBEAN,ANDITEXPOSESEVERYBUSINESSMETHODTHATTHEBEANITSELFEXPOSESEJBOBJECTSDELEGATEALLCLIENTREQUESTSTOBEANSWEDEPICTEJBOBJECTSINFIGURE31YOUSHOULDTHINKOFEJBOBJECTSASPHYSICALPARTSOFTHECONTAINERALLEJBOBJECTSHAVECONTAINERSPECIFICCODEINSIDEOFTHEMEACHCONTAINERHANDLESMIDDLEWAREDIFFERENTLYANDPROVIDESDIFFERENTQUALITIESOFSERVICEBECAUSEEACHBEANSEJBOBJECTISDIFFERENT,YOURCONTAINERVENDORSUPPLIESGLUECODETOOLSTHATGENERATETHECLASSFILEFORYOUREJBOBJECTSAUTOMATICALLYTHEREMOTEINTERFACEASWEMENTIONEDPREVIOUSLY,BEANCLIENTSINVOKEMETHODSONEJBOBJECTS,RATHERTHANTHEBEANSTHEMSELVESTOPERFORMTHIS,EJBOBJECTSMUSTCLONEEVERYBUSINESSMETHODTHATYOURBEANCLASSESEXPOSEBUTHOWDOTHETOOLSTHATAUTOGENERATEEJBOBJECTSKNOWWHICHMETHODSTOCLONETHEANSWERISINASPECIALINTERFACETHATABEANPROVIDERWRITESTHISINTERFACEDUPLICATESALLTHEBUSINESSLOGICMETHODSTHATTHECORRESPONDINGBEANCLASSEXPOSESTHISINTERFACEISCALLEDTHEREMOTEINTERFACEREMOTEINTERFACESMUSTCOMPLYWITHSPECIALRULESTHATTHEEJBSPECIFICATIONDEFINESFOREXAMPLE,ALLREMOTEINTERFACESMUSTDERIVEFROMACOMMONINTERFACETHATISSUPPLIEDBYSUNMICROSYSTEMSTHISINTERFACEISCALLEDJAVAXEJBEJBOBJECT,ANDITISSHOWNINSOURCE32JAVAXEJBEJBOBJECTLISTSANUMBEROFINTERESTINGMETHODSTHEIREXPLANATIONSAREPREVIEWEDINTABLE31FORNOW,DONTWORRYABOUTFULLYUNDERSTANDINGTHEMEANINGSJUSTKNOWTHATTHESEMETHODSAREREQUIREDMETHODSTHATALLEJBOBJECTSMUSTIMPLEMENTANDREMEMBERTHATYOUDONTIMPLEMENTTHEMETHODSTHEEJBCONTAINERDOESWHENITAUTOGENERATESTHEEJBOBJECTSFORYOUTHECLIENTCODETHATWANTSTOWORKWITHYOURBEANSCALLSTHEMETHODSINJAVAXEJBEJBOBJECTTHISCLIENTCODECOULDBESTANDALONEAPPLICATIONS,APPLETS,SERVLETS,ORANYTHINGATALLEVENOTHERENTERPRISEBEANSINADDITIONTOTHEMETHODSLISTEDINTABLE31,YOURREMOTEINTERFACEDUPLICATESYOURBEANSBUSINESSMETHODSWHENABEANSCLIENTINVOKESANYOFTHESEBUSINESSMETHODS,THEEJBOBJECTWILLDELEGATETHEMETHODTOITSCORRESPONDINGIMPLEMENTATIONWHICHRESIDESINTHEBEANITSELF2JAVARMIANDEJBOBJECTSYOUMAYHAVENOTICEDTHATJAVAXEJBEJBOBJECTEXTENDSJAVARMIREMOTETHEJAVARMIREMOTEINTERFACEISPARTOFJAVAREMOTEMETHODINVOCATIONRMIANYOBJECTTHATIMPLEMENTSJAVARMIREMOTEISAREMOTEOBJECTANDISCALLABLEFROMADIFFERENTJAVAVIRTUALMACHINETHISISHOWREMOTEMETHODINVOCATIONSAREPERFORMEDINJAVAWEFULLYDESCRIBETHISINAPPENDIXABECAUSETHEEJBOBJECTPROVIDEDBYTHECONTAINERIMPLEMENTSYOURREMOTEINTERFACE,ITALSOINDIRECTLYIMPLEMENTSJAVARMIREMOTEASWELLTHISMEANSTHATYOUREJBOBJECTSAREFULLYNETWORKEDOBJECTS,ABLETOBECALLEDFROMOTHERJAVAVIRTUALMACHINESORPHYSICALMACHINESLOCATEDELSEWHEREONTHENETWORKTHUS,EJBREMOTEINTERFACESAREREALLYJUSTJAVARMIREMOTEINTERFACESWITHTHEEXCEPTIONTHATEJBREMOTEINTERFACESMUSTALSOBEBUILTTOCONFORMTOTHEEJBSPECIFICATIONEJBREMOTEINTERFACESMUSTCONFORMTOJAVARMISREMOTEINTERFACERULESFOREXAMPLE,ANYMETHODTHATSPARTOFAREMOTEOBJECTCALLABLEACROSSVIRTUALMACHINESMUSTTHROWASPECIALREMOTEEXCEPTIONAREMOTEEXCEPTIONISAJAVARMIREMOTEEXCEPTIONORASUPERCLASSOFITINJAVA2AREMOTEEXCEPTIONINDICATESTHATSOMETHINGUNEXPECTEDHAPPENEDONTHENETWORKWHILEYOUWEREINVOKINGACROSSVIRTUALMACHINES,SUCHASANETWORK,PROCESS,ORMACHINEFAILUREEVERYMETHODSHOWNINTABLE31FORJAVAXEJBEJBOBJECTTHROWSAJAVARMIREMOTEEXCEPTIONREMOTEINTERFACESMUSTCONFORMTOJAVARMISPARAMETERPASSINGCONVENTIONSASWELLNOTEVERYTHINGCANBEPASSEDOVERTHENETWORKINACROSSVMMETHODCALLTHEPARAMETERSYOUPASSINMETHODSMUSTBEVALIDTYPESFORJAVARMITHISINCLUDESPRIMITIVES,SERIALIZABLEOBJECTS,ANDJAVARMIREMOTEOBJECTSTHEFULLDETAILSOFWHATYOUCANPASSAREGIVENINAPPENDIXAEJBALSOINHERITSAVERYSIGNIFICANTBENEFITFROMJAVARMIINRMI,THEPHYSICALLOCATIONOFTHEREMOTEOBJECTYOUREINVOKINGONISMASKEDFROMYOUTHISFEATURESPILLSOVERTOEJBYOURCLIENTCODEISUNAWAREOFWHETHERTHEEJBOBJECTITSUSINGISLOCATEDONAMACHINENEXTDOORORAMACHINEACROSSTHEINTERNETITALSOMEANSTHEEJBOBJECTCOULDBELOCATEDONTHESAMEJAVAVMASTHECLIENTTHUS,EJBGUARANTEESLOCATIONTRANSPARENCYOFDISTRIBUTEDCOMPONENTSLOCATIONTRANSPARENCYISANECESSARYFEATUREOFMULTITIERDEPLOYMENTSITMEANSYOUR77INTRODUCTIONTOSESSIONBEANSGOBACKTOTHEFIRSTPAGEFORAQUICKLINKTOBUYTHISBOOKONLINECLIENTCODEISPORTABLEANDNOTTIEDTOASPECIFICMULTITIERDEPLOYMENTCONFIGURATIONITALSOALLOWSEJBCONTAINERSTOPERFORMINTERESTINGOPTIMIZATIONSBEHINDTHESCENESWHENEVERYTHINGISRUNNINGLOCALLY313THEHOMEOBJECTASWEVESEEN,CLIENTCODEDEALSWITHEJBOBJECTSANDNEVERWITHBEANSDIRECTLYTHENEXTLOGICALQUESTIONIS,HOWDOCLIENTSACQUIREREFERENCESTOEJBOBJECTSTHECLIENTCANNOTINSTANTIATEANEJBOBJECTDIRECTLYBECAUSEEJBOBJECTSCOULDEXISTONADIFFERENTMACHINETHANTHEONETHECLIENTISONSIMILARLY,EJBPROMOTESLOCATIONTRANSPARENCY,SOCLIENTSSHOULDNEVERBEAWAREOFEXACTLYWHEREEJBOBJECTSRESIDETOACQUIREAREFERENCETOANEJBOBJECT,YOURCLIENTCODEASKSFORANEJBOBJECTFROMANEJBOBJECTFACTORYTHISFACTORYISRESPONSIBLEFORINSTANTIATINGANDDESTROYINGEJBOBJECTSTHEEJBSPECIFICATIONCALLSSUCHAFACTORYAHOMEOBJECTTHECHIEFRESPONSIBILITIESOFHOMEOBJECTSARETODOTHEFOLLOWINGCREATEEJBOBJECTSFINDEXISTINGEJBOBJECTSFORENTITYBEANSWELLLEARNABOUTTHATINCHAPTER7REMOVEEJBOBJECTSJUSTLIKEEJBOBJECTS,HOMEOBJECTSAREPROPRIETARYANDSPECIFICTOEACHEJBCONTAINERTHEYCONTAININTERESTINGCONTAINERSPECIFICLOGIC,SUCHASLOADBALANCINGLOGIC,LOGICTOTRACKINFORMATIONONAGRAPHICALADMINISTRATIVECONSOLE,ANDMOREANDJUSTLIKEEJBOBJECTS,HOMEOBJECTSAREPHYSICALLYPARTOFTHECONTAINERANDAREAUTOGENERATEDBYTHECONTAINERVENDORSTOOLS1THEHOMEINTERFACEWEVESEENTHATHOMEOBJECTSAREFACTORIESFOREJBOBJECTSBUTHOWDOESAHOMEOBJECTKNOWHOWYOUDLIKEYOUREJBOBJECTTOBEINITIALIZEDFOREXAMPLE,ONEEJBOBJECTMIGHTEXPOSEANINITIALIZATIONMETHODTHATTAKESANINTEGERASA78MASTERINGENTERPRISEJAVABEANS2GOBACKTOTHEFIRSTPAGEFORAQUICKLINKTOBUYTHISBOOKONLINEPARAMETER,WHILEANOTHEREJBOBJECTMIGHTTAKEASTRINGINSTEADTHECONTAINERNEEDSTOKNOWTHISINFORMATIONTOGENERATEHOMEOBJECTSYOUPROVIDETHISINFORMATIONTOTHECONTAINERBYSPECIFYINGAHOMEINTERFACEHOMEINTERFACESSIMPLYDEFINEMETHODSFORCREATING,DESTROYING,ANDFINDINGEJBOBJECTSTHECONTAINERSHOMEOBJECTIMPLEMENTSYOURHOMEINTERFACEWESHOWTHISINFIGURE32ASUSUAL,EJBDEFINESSOMEREQUIREDMETHODSTHATALLHOMEINTERFACESMUSTSUPPORTTHESEREQUIREDMETHODSAREDEFINEDINTHEJAVAXEJBEJBHOMEINTERFACEANINTERFACETHATYOURHOMEINTERFACESMUSTEXTENDWESHOWJAVAXEJBEJBHOMEINSOURCE33NOTICETHATTHEPARENTJAVAXEJBEJBHOMEDERIVESFROMJAVARMIREMOTETHISMEANSYOURHOMEINTERFACESDOASWELL,IMPLYINGTHATHOMEOBJECTSAREALSOFULLYNETWORKEDJAVARMIREMOTEOBJECTS,WHICHCANBECALLEDACROSSVMSTHETYPESOFTHEPARAMETERSPASSEDINTHEHOMEINTERFACESMETHODSMUSTBEVALIDTYPESFORJAVARMIIFYOUDLIKEAPREVIEWOFTHEMETHODSOFEJBHOME,REFERTOTABLE32314DEPLOYMENTDESCRIPTORSTHENEXTFILETHATYOUMUSTINCLUDEWITHYOURENTERPRISEBEANCOMPONENTISADEPLOYMENTDESCRIPTORDEPLOYMENTDESCRIPTORSENABLEEJBCONTAINERSTOPROVIDEIMPLICITMIDDLEWARESERVICESTOENTERPRISEBEANCOMPONENTSANIMPLICITMIDDLEWARESERVICEISASERVICETHATYOURBEANSCANGAINWITHOUTCODINGTOANYMIDDLEWAREAPITHEBEANSGAINTHESERVICESAUTOMATICALLYTOINFORMTHECONTAINERABOUTYOURMIDDLEWARENEEDS,YOUASABEANPROVIDERMUSTDECLAREYOURCOMPONENTSMIDDLEWARESERVICEREQUIREMENTSINADEPLOYMENTDESCRIPTORFILEFOREXAMPLE,YOUCANUSEADEPLOYMENTDESCRIPTORTODECLAREHOWTHECONTAINERSHOULDPERFORMLIFECYCLEMANAGEMENT,PERSISTENCE,TRANSACTIONCONTROL,ANDSECURITYSERVICESTHECONTAINERINSPECTSTHEDEPLOYMENTDESCRIPTORANDFULFILLSTHEREQUIREMENTSTHATYOULAYOUTYOUCANUSEADEPLOYMENTDESCRIPTORTOSPECIFYTHEFOLLOWINGREQUIREMENTSOFYOURBEANBEANMANAGEMENTANDLIFECYCLEREQUIREMENTSTHESEDEPLOYMENTDESCRIPTORSETTINGSINDICATEHOWTHECONTAINERSHOULDMANAGEYOURBEANSFOREXAMPLE,YOUSPECIFYTHENAMEOFTHEBEANSCLASS,WHETHERTHEBEANISASESSIONORENTITYBEAN,ANDTHEHOMEINTERFACETHATGENERATESTHEBEANSPERSISTENCEREQUIREMENTSENTITYBEANSONLYAUTHORSOFENTITYBEANSUSETHEDEPLOYMENTDESCRIPTORSTOINFORMTHECONTAINERABOUTWHETHERTHEBEANHANDLESITSPERSISTENCEONITSOWNORDELEGATESTHEPERSISTENCETOTHEEJBCONTAINERINWHICHITSDEPLOYEDTRANSACTIONREQUIREMENTSYOUCANALSOSPECIFYTRANSACTIONSETTINGSFORBEANSINDEPLOYMENTDESCRIPTORSTHESESETTINGSCONTROLWHATTHEBEANREQUIREMENTSAREFORRUNNINGINATRANSACTIONBYSPECIFYINGYOURTRANSACTIONALNEEDSDECLARATIVELYINADEPLOYMENTDESCRIPTOR,YOURBEANSMAYNOTHAVETOCODETOATRANSACTIONAPIATALL,YETSTILLBENEFITFROMSOPHISTICATEDONLINETRANSACTIONPROCESSINGCONCEPTSSECURITYREQUIREMENTSDEPLOYMENTDESCRIPTORSCONTAINACCESSCONTROLENTRIES,WHICHTHEBEANSANDCONTAINERUSETOCONTROLACCESSCONTROLTOCERTAINOPERATIONSFOREXAMPLE,YOUCANSPECIFYWHOISALLOWEDTOUSEWHICHBEANS,ANDEVENWHOISALLOWEDTOUSEEACHMETHODONAPARTICULARBEANYOUCANALSOSPECIFYWHATSECURITYROLESTHEBEANSTHEMSELVESSHOULDRUNIN,WHICHISUSEFULIFTHEBEANSNEEDTOPERFORMSECUREOPERATIONSINEJB10,ADEPLOYMENTDESCRIPTORISASERIALIZEDOBJECTSEEAPPENDIXAFORANEXPLANATIONOFJAVASERIALIZATIONTHECREATIONOFEJB10DEPLOYMENTDESCRIPTORSISAUTOMATEDFORYOUBYEJBTOOLSSUPPLIEDBYPARTIESSUCHASEJBCONTAINERVENDORS,EJBSERVERVENDORS,ORJAVAINTEGRATEDDEVELOPMENTENVIRONMENTIDEVENDORSFOREXAMPLE,YOUMIGHTSIMPLYNEEDTOSTEPTHROUGHAWIZARDINAJAVAIDETOGENERATEADEPLOYMENTDESCRIPTORASABEANPROVIDER,YOUARERESPONSIBLEFORCREATINGADEPLOYMENTDESCRIPTORONCEYOURBEANISUSED,OTHERPARTIESCANMODIFYITSDEPLOYMENTDESCRIPTORSETTINGSFOREXAMPLE,WHENANAPPLICATIONASSEMBLERISPIECINGTOGETHERANAPPLICATIONFROMBEANS,HEORSHECANTUNEYOURDEPLOYMENTDESCRIPTORSIMILARLY,WHENADEPLOYERISINSTALLINGYOURBEANSINACONTAINERINPREPARATIONFORADEPLOYMENTTOGOLIVE,HEORSHECANTUNEYOURDEPLOYMENTDESCRIPTORSETTINGSASWELLTHISISALLPOSSIBLEBECAUSEDEPLOYMENTDESCRIPTORSDECLAREHOWYOURBEANSSHOULDUSEMIDDLEWARE,RATHERTHANYOURWRITINGCODETHATUSESMIDDLEWAREDECLARINGRATHERTHANPROGRAMMINGENABLESPEOPLEWITHOUTJAVAKNOWLEDGETOTWEAKYOURCOMPONENTSATALATERTIMETHISPARADIGMBECOMESANABSOLUTENECESSITYWHENPURCHASINGEJBCOMPONENTSFROMATHIRDPARTYBECAUSETHIRDPARTYSOURCECODEISTYPICALLYNOTAVAILABLEBYHAVINGASEPARATECUSTOMIZABLEDEPLOYMENTDESCRIPTOR,YOUCANVERYEASILYFINETUNECOMPONENTSTOASPECIFICDEPLOYMENTENVIRONMENTWITHOUTCHANGINGSOURCECODE315BEANSPECIFICPROPERTIESFINALLY,YOUCANINCLUDEAJAVABASEDPROPERTIESFILEWITHYOURBEANYOURBEANCANREADTHESEPROPERTIESINATRUNTIMEANDUSETHEPROPERTIESTOTUNEHOWTHEBEANFUNCTIONSFOREXAMPLE,ACOMPUTATIONBEANCANUSEPROPERTIESTOENABLESELECTIONOFANALGORITHMTOUSEAPRICINGBEANCOULDUSEPROPERTIESTOCUSTOMIZEPRICINGRULESASSHOWNINPARTIVOFTHISBOOK316EJBJARFILEONCEYOUVEGENERATEDYOURBEANCLASSES,YOURHOMEINTERFACES,YOURREMOTEINTERFACES,YOURDEPLOYMENTDESCRIPTORS,ANDYOURBEANSPROPERTIES,ITSTIMETOPACKAGETHEMUPINTOONEENTITYTHISENTITYISCALLEDTHEEJBJARFILEITISACOMPRESSEDFILETHATCONTAINSEVERYTHINGWEHAVEDESCRIBED,ANDITFOLLOWSTHEZIPCOMPRESSIONFORMATJARFILESARECONVENIENT,COMPACTMODULESFORSHIPPINGYOURJAVASOFTWARETHEEJBJARFILECREATIONPROCESSISSHOWNINFIGURE33BYTHETIMEYOUREADTHIS,THERESHOULDBEANUMBEROFTOOLSAVAILABLETOAUTOGENERATEEJBJARFILES,SUCHASJAVAIDESYOUCANALSOGENERATETHESEFILESYOURSELFWELLSHOWYOUHOWINCHAPTER4ONCEYOUVEMADEYOUREJBJARFILE,YOURENTERPRISEBEANISCOMPLETE,ANDITISADEPLOYABLEUNITWITHINANAPPLICATIONSERVERWHENTHEYAREDEPLOYEDPERHAPSAFTERBEINGPURCHASED,THETOOLSTHATEJBCONTAINERVENDORSSUPPLYARERESPONSIBLEFORDECOMPRESSINGANDREADINGANDEXTRACTINGTHEINFORMATIONCONTAINEDWITHINTHEEJBJARFILEFROMTHERE,THEDEPLOYERHASTOPERFORMVENDORSPECIFICTASKS,SUCHASGENERATINGEJBOBJECTS,GENERATINGHOMEOBJECTS,IMPORTINGYOURBEANINTOTHECONTAINER,ANDTUNINGTHEBEANSUPPORTFOREJBJARFILESISASTANDARD,REQUIREDFEATURETHATALLEJBTOOLSSUPPORT中文翻译第三章了解会话BEAN在这一章,我们先介绍一下ENTERPRISEBEAN的开发概念。本章有以下概念1ENTERPRISEBEAN组件的内容,包括实现组件,远程接口,EJB对象,本地接口,本地对象,部署描述文件,清单和EJBJAR文件。2会话BEAN的特性。我们将了解什么使会话BEAN成为独一无二的,我们还会介绍有状态会话BEAN和无状态会话BEAN的不同。3写会话BEAN的规则4怎样写的客户端代码去调用会话BEAN31什么组成了ENTERPRISEBEANENTERPRISEBEAN是分散部署在服务端的组件,这种组件能够装载到大型应用程序中。ENTERPRISEBEAN是一种可以被分配到多行,相互作用,多用户安全执行,部署到任何EJB容器/服务产品中。ENTERPRISEBEAN一般有两种会话BEAN和实体BEAN。会话BEAN是一种商业程序,然而实体BEAN是一种永久的商业数据。SUN公司将来也会提供其他类型的BEAN。这部分确切地检测ENTERPRISEBEAN的组成。我们将会看到,ENTERPRISEBEAN不是一个单独的整体文件大量的文件在一起协调工作才组成了ENTERPRISEBEAN311实现组件在第一部分,我们学习了ENTERPRISEJAVABEAN规格定义了开发中不同部分中的合约。为了让BEAN能够在任何容器中运行,在任何客户端下运行,BEAN必须继承定义好的接口。在EJB中,你要在实现组件中实现你的ENTERPRISEBEAN这仅仅是一个遵循定义好的接口和听从某些规则的JAVA类。一个ENTERPRISEBEAN包含了你组件中的实现的细节。尽管EJB中没有必须遵守的规则,会话BEAN的实现和实体BEAN的实现还是非常不同的。因为会话BEAN和ENTERPRISEBEAN包含了典型的商业程序逻辑,就像计算价格的逻辑,转移不同银行账户中的资金的逻辑。对于实体BEAN,ENTERPRISEBEAN包含了与数据有关的逻辑,像更改客户名字的逻辑,减少银行账户差额的逻辑,或修改购物订单的逻辑。EJB规格定义了一些你的BEAN类可以实现的接口标准。这些接口使你的类不得不暴露一些可以供所有类都可以继承的接口,就像定义EJB组件模式那样。容器调用这些要求的方法管理你的类并留意你类中有意义的方法。所有类必须实现的基本接口是JAVAXEJBENTERPRISEBEAN接口。这个接口服务就像制造商接口;实现这个接口说明你的类确实是一个ENTERPRISEBEAN类。这个JAVAXEJVENTERPRISEBEAN的有趣的地方是从JAVAIOSERIALIZABLE中继承来的。这意味着所有的ENTERPRISEBEAN都能被转化成块,并分享所有序列化对象的部分。这在以后很重要,所以不要忘记。会话BEAN和实体BEAN都有从JAVAXEJBENTERPRISEBEAN接口继承来的特殊接口。所有的会话BEAN都必须实现JAVAX,EJB,SESSIONBEAN,同样的,所有的实体BEAN都必须实现JAVAXEJBENTITYBEAN。我们稍后将会了解这些接口的详细内容。至此,要知道你的ENTERPRISEBEAN类根本不需要直接实现JAVAXEJBENTERPRISEBEAN接口,只要知道你的BEAN类实现了与它相同类型BEAN的接口就可以了。312EJB对象当一个客户想要使用ENTERPRISEBEAN类的实例时,这个客户不需要直接调用真实的BEAN接口。只要这个调用被EJB容器截断,它就会被这个BEAN实例所代表。这种情况有很多原因你的ENTERPRISEBEAN类不能被网络直接呼叫,因为ENTERPRISEBEAN类不是网络化的类。你的EJB容器为你控制网络,通过一个可以网络化的对象包裹你的BEAN这种方法。这个网络化的对象从客户那里接受呼叫并把这些呼叫转换成你BEAN类中的对象。这使你不用再担心网络问题(这种容器把网络作为一种免费服务提供给你)。通过截断请求,EJB容器可以自动产生某些管理手段。包括处理逻辑问题,安全逻辑,BEAN实例联合逻辑,以及任何其他的容器有可能要求的逻辑。EJB容器能追踪方法和调用,在系统管理员接口上显示真实的时间习惯图表,为智能平衡载入收集数据等等。EJB容器形成这些任务并不需要特别请求。但是因为EJB容器截断了所有的方法呼叫,容器就有机会产生这些任务。因此,EJB容器在客户端代码和BEAN之间扮演者间接律师的角色。这个间接的律师本身是一个网络化的对象,叫做EJB对象。这个EJB对象是网络,装载,安全等对象的替代品。这种智能对象知道怎样形成EJB容器的间接逻辑。EJB对象在客户端和BEAN之间起着粘合剂的作用,他暴露出每一个BEAN本身所暴露的商业方法。EJB对象可以代表所有的客户端请求并传递给BEAN。你应该把EJB对象考虑成容器的一个物理组成部分,所有EJB对象内部都有容器特别代码。因为每一个BEAN的EJB对象都是不同的,你的容器厂商提供了可以为你的EJB对象自动产生类文件的粘贴代码工具。1远程接口就像我们以前提到的那样,BEAN客户端调用EJB对象上的方法,而不是BEAN本身。为了形成这些方法,EJB对象必须克隆每一个你的BEAN本身暴露的商业方法。但是这个工具是怎样产生知道该克隆哪一个方法的EJB对象呢答案是在一个BEAN提供者所写的特别接口中。这个接口复制了与之对应BEAN的所有暴露的商业方法。这个接口叫做远程接口。远程接口必须遵守EJB规范中所定义的特别规则。例如,所有的远程接口必须起源于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭小菜园租赁合同范本
- 工厂顶灯电安装合同范本
- 外卖店新店转让合同范本
- 土地及林地交易合同范本
- 地方分隔合同协议书模板
- 外卖小炒店转让合同范本
- 国营企业劳动合同协议书
- 就业协议不想急着签合同
- 实习协议书可以代替合同
- 商业用地租赁合同协议书
- 跨文化沟通障碍原因分析及解决方法
- ±800kV等级及以上高压直流输电系统成套设计规程(修订)
- 2022版义务教育(道德与法治)课程标准(附课标解读)
- 店面业绩倍增内训课件
- 小学科学教师专题培训课件
- 《患者的安全转运》课件
- 《病史采集病历分析》课件
- 【新大纲新教材】2022年初级会计职称《经济法基础》精讲课件(1-8章完整版)
- 市政工程交通导行方案
- 梁的弯曲振动-振动力学课件
- 说专业-物流管理专业
评论
0/150
提交评论