ÏÖÔÚ£¬´ÓÈçϼ¸¸ö·½ÃæÀ´½éÉÜEnterprise beanµÄ¿ª·¢£º
¿ª·¢EJBµÄÖ÷Òª¹Ø¼üµÄ²½Öè¡£
ÈçºÎʹÓÃʹÓÃJbuilder¡£
ʹÓÃJbuilderÖ®ÍâµÄÆäËüµÄ¿ª·¢¹¤¾ß¡£
ÈçºÎ¿ª·¢Eneterprise BeansµÄÏêϸµÄϸ½Ú¡£
Ŀǰ¿ª·¢³ÌÐòµÄÏÞÖÆ¡£
¿ª·¢EJBµÄÖ÷Òª²½Ö裺
Ò»°ãÀ´Ëµ£¬Õû¸öµÄ¿ª·¢²½Ö裨¿ª·¢£¬ÅäÖã¬×é×°£©°üÀ¨Èçϼ¸¸ö·½Ã棺
¿ª·¢£ºÊ×ÏÈÒª¶¨ÒåÈý¸öÀࣺBeanÀà±¾Éí£¬BeanµÄ±¾µØ£¨Home£©ºÍÔ¶³Ì£¨Remote£©½Ó¿ÚÀà¡£
ÅäÖãºÅäÖðüÀ¨²úÉúÅäÖÃÃèÊöÆ÷--ÕâÊÇÒ»¸öXMLÎļþ¡¢ÉùÃ÷ÁËEnterprise BeanµÄÊôÐÔ¡¢°ó¶¨ÁËbeanµÄclassÎļþ£¨°üÀ¨stubÎļþºÍskeletonÎļþ£©¡£×îºó½«ÕâЩÅäÖö¼·Åµ½Ò»¸öjarÎļþÖС£»¹ÐèÒªÔÚÅäÖÃÆ÷Öж¨Òå»·¾³ÊôÐÔ¡£
×é×°Ó¦ÓóÌÐò£º°üÀ¨½«Enterprise beans°²×°µ½Server·þÎñÆ÷ÖУ¬²âÊÔ¸÷²ãµÄÁ¬½ÓÇé¿ö¡£³ÌÐò×é×°Æ÷½«Èô¸É¸öEnterprise BeansÓëÆäËüµÄ×é¼þ£¨Servlet,Applet,ScriptµÈµÈ£©½áºÏÆðÀ´¡£×éºÏ³ÉÒ»¸öÍêÕûµÄÓ¦ÓóÌÐò¡£»òÕß½«Èô¸É¸öEnterprise beans×éºÏ³ÉÒ»¸ö¸´ÔÓµÄEnterprise Bean¡£
¹ÜÀíEnterprise Bean¡£
¶þ¡¢Ê¹ÓÃJbuilder£º
JbuilderÓëEJB ContainerÄܹ»½øÐÐÎÞ·ìÁ¬½Ó¡£JbuilderºÍInpriseµÄÓ¦Ó÷þÎñÆ÷°üÀ¨ÁËËùÓеĿª·¢ºÍÅäÖÃEnterprise BeansµÄ¹¤¾ßÒÔ¼°ËùÐèÒªµÄ¿â£º
ÔËÐк͹ÜÀíEnterprise BeanµÄÈÝÆ÷¡£
ÃüÃû·þÎñ¡£
ÊÂÎñ·þÎñ¡£
JavaÊý¾Ý¿â¡£
¿ª·¢Enterprise BeansËùÐèÒªµÄAPI¡£
Ò»¸öÔöÇ¿µÄjava-to-iiop±àÒëÆ÷£¬Ö§³ÖÖµÀàÐͺÍRMIÐźš£
Jbuilder»¹ÌṩÁËÒ»¸ö¿ìËÙ¿ª·¢Ó¦ÓóÌÐòEnterprise BeansµÄ¹¤¾ßºÍÏòµ¼¡£Í¨¹ý¼òµ¥¶øÇÒÖ±¹ÛµÄ²½Ö裬Ïòµ¼°ïÖúÄ㽨Á¢Ò»¸öEnterprise Bean¡£×Ô¼ºÉ趨ijЩȱʡֵ£¬²úÉúÁËbeanµÄÄ£°å£¬ÔÚÉÏÃæ£¬ÎÒÃÇ¿ÉÒÔÔö¼ÓÎÒÃÇ×Ô¼ºµÄÓ¦ÓÃÂß¼¡£
JbuilderÒ²ÌṩÁËÒ»¸öEJBµÄ½Ó¿ÚÉú³ÉÏòµ¼¡£Ïòµ¼ÔÚEnterprise BeanµÄ¹«¹²·½·¨»ù´¡ÉÏÉú³ÉÁËRemote½Ó¿ÚºÍHome½Ó¿Ú¡£Jbuilder»¹Ìṩһ¸öÅäÖÃÆ÷µÄÏòµ¼°ïÖúÎÒÃÇÖ𲽵Ľ¨Á¢XMLÃèÊöÆ÷Îļþ¡£²¢½«Éú³ÉµÄStubs¼¯Öе½Ò»¸öjarÎļþÖС£
Èý¡¢Ê¹ÓÃJbuilderÖ®ÍâµÄ¼¯³É»·¾³£º
Èç¹ûÄãʹÓÃÆäËüµÄ³ýÁ˱ðµÄ¼¯³É»·¾³£¨IDE£©¡£ÒªÈ·¶¨Ê¹ÓÃÁ˼¯³É»·¾³IDEËù´øµÄÈÝÆ÷¹¤¾ß¡£Ò²ÒªÑéÖ¤IDEÊÇ·ñÖ§³ÖEJB¹æ·¶µÄÏ µÄ°æ±¾£¬»¹ÒªÈ·¶¨ËüÊÇ·ñÕýÈ·µÄÖ§³ÖEJBµÄAPI¡£
Ҫȷ¶¨JDµ½ËùÖ§³ÖµÄEJBÈÝÆ÷µÄ°æ±¾¡£¿ÉÒÔͨ¹ý¼ì²éInpriseµÄ°²×°ËµÃ÷À´È·¶¨EJBÈÝÆ÷ËùÖ§³ÖµÄÖ§³ÖJDKµÄ°æ±¾¡£
ÔÚÅäÖÃEnterprise BeanµÄʱºò£¬Äã±ØÐëʹÓÃInpriseµÄÓ¦Ó÷þÎñÆ÷ËùÌṩµÄ¹¤¾ß¡£ÕâЩ¹¤¾ßÄܹ»±à¼ºÍÐ޸ĵÚÈý·½µÄ´úÀíÉÌÌṩµÄInpriseÅäÖÃÃèÊöÆ÷¡£»¹Äܹ»ÑéÖ¤ÅäÖÃÃèÊöÆ÷£¬Äܹ»ÑéÖ¤beanµÄÔ´´úÂë¡£
ËÄ¡¢Enterprise BeansµÄ¿ª·¢£º
ÕâÒ»½ÚÎÒÃÇÖ÷ÒªÌÖÂÛEnterprise beanµÄÌṩÕßÒª¿ª·¢enterprise bean±ØÐëÍê³ÉµÄÈÎÎñÉÏÃæ¡£ÕâЩÈÎÎñ°üÀ¨£º
¶¨ÒåºÍ±àдEnterprise beanÀࣺÕâÊÇEnterprise beanÄÚ²¿Ó¦ÓÃÂß¼µÄʵÏÖ¡£
±àдEnterprise beanµÄÔ¶³Ìremote½Ó¿ÚÀà¡£
±àдEnterprise beanµÄ±¾µØhome ½Ó¿ÚÀà¡£
˵Ã÷Ö÷¼üÀ࣬Ö÷¼üÀàÖ»ÊǶÔÓÚEntity bean²ÅÐèÒªµÄ¡£ÔÚEnterprise beanµÄÅäÖÃÃèÊöÆ÷ÖÐÖ¸¶¨Ö÷¼üµÄÃû×Ö¡£
Enterprise beansÌṩÕß¶¨ÒåÁËÔ¶³Ì£¨Remote£©½Ó¿ÚºÍ±¾µØ£¨home£©½Ó¿Ú£¬ÊµÏÖÁËEnterprise beanÀà±¾Éí¡£Remote½Ó¿ÚÖÐÌṩÁ˿ͻ§µ÷ÓÃEnterprise beanʵÏÖµÄÓ¦ÓÃÂß¼º¯ÊýµÄ½Ó¿Ú¡£¶øhome½Ó¿ÚÌṩÁ˲úÉúºÍ¶¨Î»remote½Ó¿ÚʵÀýµÄ·½·¨¡£
ÔÚEnterprise bean±¾ÉíÀàµÄʵÏÖ£¬±¾µØhome½Ó¿Ú£¬Ô¶³Ìremote½Ó¿ÚÖ®¼ä²¢Ã»ÓÐÕýʽµÄÁªÏµ£¨ÀýÈç¼Ì³Ð¹ØÏµ£©¡£µ«ÊÇ£¬ÔÚÈý¸öÀàÀïÃæÉùÃ÷µÄ·½·¨È´±ØÐë×ñÊØEJBÀïÃæ¶¨ÒåµÄ¹æ·¶¡£ÀýÈ磺 ÄãÔÚEnterprise beanÀïÃæÉùÃ÷ÁËÒ»¸öÓ¦ÓóÌÐòµÄ·½·¨»òÕß˵ӦÓÃÂß¼¡£Ò²ÔÚbeansµÄremote½Ó¿ÚÖÐÉùÃ÷ÁËÕâ¸ö·½·¨£¬ÄÇô£¬ÕâÁ½¸öµØ·½±ØÐëҪͬÑùµÄÃû×Ö¡£BeanµÄʵÏÖÀïÃæ±ØÐëÖÁÉÙÓÐÒ»¸öCreate()·½·¨£ºejbCreate()¡£µ«ÊÇ¿ÉÒÔÓжà¸ö´øÓв»Í¬²ÎÊýµÄcreate()·½·¨¡£ÔÚhome½Ó¿ÚÖУ¬Ò²±ØÐëÓÐÏàͬµÄ·½·¨¶¨Ò壨²ÎÊýµÄ¸öÊýÏàͬ£©¡£EjbCreate()·½·¨·µ»ØµÄÒ»¸öÈÝÆ÷¹ÜÀíµÄ³Ö¾Ã¶ÔÏó¡£ËüÃǶ¼·µ»ØÒ»¸öÈÝÆ÷¹ÜÀí³Ö¾ÃÐÔµÄÖ÷¼üÖµ¡£µ«ÊÇ£¬ÔÚhomeµÄÏàÓ¦µÄCreate()·½·¨Öзµ»ØÖµµÄÀàÐÍÊÇremote½Ó¿Ú¡£
×¢Ò⣺ʵÌåbeanµÄʵÏÖµÄejbCreate£¨£©·½·¨Óе㲻ͬ¡£ÊµÌåbean¿ÉÒÔ²»¶¨ÒåejbCreate()·½·¨¡£Èç¹ûʵÌåÖ»ÊÇͨ¹ýÓ¦ÓóÌÐò»òͨ¹ýÊý¾Ý¿â¹ÜÀí³ÌÐòµÄµÄ;¾¶±»¼Óµ½Êý¾Ý¿âÖУ¬ÊµÌåbean¾ÍÊ¡ÂÔÁËejbCreate£¨£©·½·¨¡£ejbCreate£¨£©·µ»ØµÄÖµÊÇÖ÷¼üÀàÐ͵ġ£Èç¹ûejbCreate£¨£©·½·¨ÊÇÈÝÆ÷¹ÜÀí³Ö¾ÃÐÔµÄʵÌåbeanµÄ·½·¨£¬ËüµÄ·µ»ØÖµ¾ÍÊÇNULLÀàÐÍ¡£Èç¹ûʵÌåbeanʵÏÖÁËBean¹ÜÀíµÄ³Ö¾ÃÐÔ£¬ejbCreate£¨£©·½·¨¾Í·µ»ØÖµÀàÐ;ÍÊÇÖ÷¼üÀàÐÍ¡£ÔÚÒÔºó£¬ÎÒÃÇ»áÏêϸÌÖÂÛËüÃǵIJ»Í¬¡£
Entereprise BeanÌṩÕß¶¨ÒåÁËEnterprise beanµÄÓïÒå¡£ÈÝÆ÷µÄÈÎÎñÊǰÑhome½Ó¿Ú£¬remote½Ó¿ÚºÍEnterprise beanµÄʵÏÖÀà½áºÏÆðÀ´¡£±£Ö¤ÔÚ±àÒëʱºÍÔËÐÐʱ£¬remote½Ó¿ÚºÍbeanµÄʵÏÖÀàÊÇÏà¶ÔÓ¦µÄ¡£
Enterprise beanµÄ¼Ì³Ð¹ØÏµ£º
Enterprise beanµÄʵÏÖÀ࣬remote½Ó¿Ú£¬home½Ó¿Ú¶¼Òª´Ó²»Í¬µÄ»ùÀàÖм̳ÐÏÂÀ´¡£Home½Ó¿ÚÊÇ´Ójavax.ejb.EJBHomeÖм̳йýÀ´µÄ¡£Remote½Ó¿Ú´Ójavax.ejb.EJBObjectÖм̳жøÀ´¡£RemoteºÍhome½Ó¿ÚµÄ»ùÀà¶¼ÊÇjavax.rmi.Remote¡£
Ò»¸ö»á»°bean±ØÐëʵÏÖ»ùÀàjavax.ejb.SessionBean¡£¶øÊµÌåbean±ØÐëʵÏÖ»ùÀàjavax.ejb.EntiyBean¡£ÕâЩEJBµÄ»ùÀà¶¼ÊÇ´Ójavax.ejb.EnterpriseBean¼Ì³Ð¶øÀ´¡£¶øjavax.ejb.EnterpriseBeanÓÖÊÇ´Ójava.io.Serializable¼Ì³Ð¶øÀ´¡£
ÏÂͼÏÔʾÁËËüÃÇÖ®¼äµÄ¹ØÏµ¡£ÔÚÕâÀCartBean£¬¼È¿ÉÒÔÊÇһʵÌåbean£¬Ò²¿ÉÒÔÊÇÒ»¸ö»á»°bean¡£ËüµÄHome½Ó¿ÚÊÇCartHome£¬remote½Ó¿ÚÊÇCart¡£

Remote ½Ó¿Ú£º
ÿһ¸öEnterprise Bean¶¼±ØÐëÓÐÒ»¸öremote½Ó¿Ú¡£Remote½Ó¿Ú¶¨ÒåÁËÓ¦ÓóÌÐò¹æ¶¨¿Í»§¿ÉÒÔµ÷ÓõÄÂß¼²Ù×÷¡£ÕâЩÊÇһЩ¿ÉÒÔÓɿͻ§µ÷ÓõĹ«¹²µÄ·½·¨£¬Í¨³£ÓÉEnterprise beansÀàÀ´ÊµÏÖ¡£×¢Ò⣬Enterprise beanµÄ¿Í»§²¢²»Ö±½Ó·ÃÎÊBean¡£¶øÊÇͨ¹ýremote½Ó¿ÚÀ´·ÃÎÊ¡£
EJBObject»ùÀࣺ
Enterprise beanÀàµÄremote½Ó¿ÚÀ©Õ¹ÁËjavax.ejb.EJBObjectÀàµÄ¹«¹²java½Ó¿Ú¡£¶øJavax.ejb.EJBObjectÊÇËùÓÐremote½Ó¿ÚµÄ»ùÀà¡£Æä´úÂëÈçÏ£º
package javax.ejb;
public interface EJBObject extends java.rmi.Remote{
public EJBHome getEJBHome() throws java.rmi.RemoteException;
public Object getPrimaryKey() throws java.rmi.RemoteException;
public void Remove() throws java.rmi.RemtoeException, java.rmi.RemoveException
public Handle getHandle() throws java.rmi.RemoteException;
boolean isIdentical (EJBObject p0) throws java.rmi.RemoteException;
}
getEJBHome()·½·¨ÔÊÐíÄãÈ¡µÃÒ»¸öÏà¹ØµÄHome½Ó¿Ú¡£¶ÔÓÚ ÊµÌåBean£¬ÓÃgetPrimaryKey£¨£©·½·¨»ñµÃʵÌåBeanµÄÖ÷¼üÖµ¡£Remove£¨£©¿ÉÒÔɾ³ýÒ»¸öEnterprise bean¡£¾ßÌåµÄÓïÒåÔÚ¸÷ÖÖ²»Í¬ÀàÐ͵Äenterprise beansµÄÉúÃüÖÜÆÚÖУ¬ÓÉÉÏÏÂÎÄÖнâÊ͵ġ£·½·¨getHandle£¨£©·µ»ØÁËÒ»¸öEnterprise beanʵÀýµÄ³Ö¾ÃµÄ¾ä±ú¡£IsIndentical()·½·¨ÔÊÐíÄãÈ¥±È½ÏEnterprise beansÊÇ·ñÏàͬ¡£
·½·¨µÄÒªÇó£º
ËùÓеÄremote½Ó¿ÚÖеķ½·¨±ØÐëÉùÃ÷Ϊ¹«¹²£¨public£©µÄ£¬²¢±ØÐëÅ׳öjava.rmi.RemotExceptionÒì³£¡£ÁíÍ⣬ËùÓеÄremote½Ó¿ÚÖеķ½·¨¶¨ÒåµÄ²ÎÊýºÍ¶¼±ØÐëÊÇÔÚRMI-IIOPÖÐÓÐЧµÄ¡£¶Ôÿһ¸öÔÚremote½Ó¿ÚÖж¨ÒåµÄ·½·¨£¬ÔÚEnterprise bean ÀàÀïÃæ¶¼ÒªÓÐÏàÓ¦µÄ·½·¨¡£ÏàÓ¦µÄ·½·¨±ØÐëÒªÓÐͬÑùµÄÃû×Ö£¬Í¬ÑùÀàÐͺÍÊýÁ¿µÄ²ÎÊý£¬Í¬ÑùµÄ·µ»ØÖµ£¬¶øÇÒ»¹ÒªÅ׳öͬÑùµÄÀýÍâ¡£
ÈçÏ´úÂëÏÔʾÁËÒ»¸öATMÀý×ӵĻỰbeanµÄremote½Ó¿ÚAtm£¬¡£ÀïÃæÉùÃ÷ÁËÒ»¸öÓ¦Ó÷½·¨transfer£¨£©¡£ºÚÌ岿·Ö±íʾEJB¹æ·¶ÖбØÐëÒªÓеÄÄÚÈÝ¡£Remote½Ó¿Ú±ØÐëÀ©Õ¹javax.ejb.EJBObjectÀà¡£´Ó¿Í»§¶Ëµ÷ÓõÄEnterprise beanµÄÿһ¸ö·½·¨¶¼±ØÐëÔÚremote½Ó¿ÚÖÐÉùÃ÷¡£Transfer£¨£©·½·¨Å׳öÁËÁ½¸öÒâÍâ¡£ÆäÖÐInSufficientFundsExceptionÀýÍâÊÇÓ¦ÓóÌÐò¶¨ÒåµÄÒâÍâ¡£
Public interface Atm extends javax.ejb.EJBObject{
Public void transfer(String Source, String Target, float amount)
Throws java.rmi.RemoteException, InSufficientFundsException;
}
¶ÔÓÚremote½Ó¿ÚµÄ¶¨Ò广Ôò£¬»á»°beanºÍʵÌåbeanÊÇÒ»ÑùµÄ¡£
Home½Ó¿Ú£º
Enterprise beanµÄHome½Ó¿Ú¿ØÖÆ×ÅbeanµÄÉúÃüÖÜÆÚ¡£ÌṩÁËEnterprise bean¶ÔÏó£¨Ò²¾ÍÊǶÔEnterprise beanµÄʵÀý£©µÄCreate£¨£©£¬find£¨£©£¬remove£¨£©²Ù×÷¡£»á»°beanºÍʵÌåbeanÓв»Í¬µÄÉúÃüÖÜÆÚ¡£ËùÒÔ£¬ËüÃǵÄhome½Ó¿Ú±ØÐ붨Ò岻ͬµÄ·½·¨¡£
Enterprise beanµÄÌṩÕß±ØÐ붨Òåhome½Ó¿Ú£¬¶øÓÉEJBÈÝÆ÷À´ÊµÏÖhome½Ó¿Ú¡£
ÓëRemote½Ó¿ÚÏàËÆ£¬Home½Ó¿ÚÖз½·¨ÖеIJÎÊý£¬·µ»ØÖµÒ²±ØÐëÊÇRMI-IIOPÓÐЧµÄ¡£ËùÓеķ½·¨±ØÐëÅ׳öjava.rmi.RemoteExceptionÀýÍâ¡£
Home½Ó¿Ú±ØÐ붨ÒåÒ»¸ö»ò¶à¸öµÄCreate()·½·¨¡£Ã¿Ò»¸öÕâÑùµÄCreate()·½·¨¶¼±ØÐëÃüÃûΪCreate¡£²¢ÇÒ£¬ËüµÄ²ÎÊý£¬²»¹ÜÊÇÀàÐÍ»¹ÊÇÊýÁ¿¶¼±ØÐëÓëbeanÀàÀïÃæµÄejbCreate()·½·¨¶ÔÓ¦¡£×¢Ò⣬home½Ó¿ÚÖеÄCreate()·½·¨ºÍbeanÀàÖÐejbCreate()·½·¨µÄ·µ»ØÖµÀàÐÍÊDz»Í¬µÄ¡£
ʵÌåbeanµÄhome½Ó¿Ú»¹°üº¬find£¨£©·½·¨¡£