Enterprise Beans Java EE 6 platform EJB 3.1

57
Az Enterprise JavaBeans 3.1 Enterprise Beans Enterprise Beans Java EE Java EE 6 6 platform platform EJB 3.1 EJB 3.1 Ficsor Lajos, Krizsán Zoltán Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2012. 04. 10.

description

Enterprise Beans Java EE 6 platform EJB 3.1. Ficsor Lajos , Krizsán Zoltán Á l talános Informati kai Tanszék Miskolc i Egyetem Utolsó módosítás: 2012. 04. 10. Az Enterprise Beans. Az Enterprise JavaBeans ( EJB ) szerver oldali komponens, amely - PowerPoint PPT Presentation

Transcript of Enterprise Beans Java EE 6 platform EJB 3.1

Page 1: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1

Enterprise BeansEnterprise BeansJava EE Java EE 66 platform platform

EJB 3.1 EJB 3.1

Ficsor Lajos, Krizsán Zoltán

Általános Informatikai Tanszék

Miskolci EgyetemUtolsó módosítás: 2012. 04. 10.

Page 2: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 2

Az Enterprise BeansAz Enterprise Beans

Az Enterprise JavaBeans (EJB) szerver oldali komponens, amely

Az üzleti logika valamely elemének reprezentációja

Egy konténerben fut

A konténer szolgáltatásokat biztosít a bean számára• tranzakciókezelés

• perzisztencia

• biztonsági funkciók

A kliens soha nem közvetlenül az EJB-vel van kapcsolatban, hanem a konténerrel

Page 3: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 3

A kliens és az EJB kapcsolataA kliens és az EJB kapcsolata

Page 4: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 4

Az Enterprise BeansAz Enterprise Beans fajt fajtááii

Session Bean (stateless, statefull és singleton)

Message-Driven Bean

AJava EE 5 platformtól az Entity Bean megszűnt, helyette egy új perzisztencia API került a szabványba

Page 5: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 5

A session BeanA session Bean

Egy egyszerű kliens kérést reprezentál a szerverenElválasztja a klienst a szerver által végzett bonyolultabb tevékenységektőlÁltalában egy klienst tud kiszolgálni egyszerreHa a kliens terminálódik, a bean is megszűnikHa a szerver leáll, a bean elvészHárom fajtája van:

Stateful (állapottal rendelkező) session beanStateless (állapot nélküli) session beanSingleton session bean

Page 6: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 6

Stateful session beanStateful session bean

Megőrzi a kliens egyes hívásai között az adatokat

Ha a szervernek memóriát kell felszabadítania, a bean-t el kell mentenie, majd szükség esetén visszaállítania

Page 7: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 7

Stateless session beanStateless session bean

Semmilyen klienssel kapcsolatos információt nem őriz meg a kliensek hívásai között

Csak egy metódus végrehajtásának idejére tud adatokat megőrizni

Bármely példány egyenértékű a kliensek számára

Metódushívás idején kívül a szerver kisöpörheti a memóriából lementés nélkül

Hatékonyabban tud működni

Page 8: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 8

Singleton session beanSingleton session bean

Egy példányban létezik egy alkalmazásban

Életciklusa az alkalmazással azonos

A kliensek konkurrens módon használhatják

Elláthat az alkalmazás indulásával kapcsolatos inicializálási feladatokat

Page 9: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 9

Stateful session bean használataStateful session bean használata

Vannak a kliens és a bean párbeszédére jellemző adatok

Vannak két hívás között megőrzendő adatok

A bean valójában összekötő elem a kliens és az alkalmazás más komponense(i) között

A bean más EJB-k közötti munkamegosztást vezérel

Page 10: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 10

Stateless session bean használataStateless session bean használata

Nincs kliens specifikus adat

Általános feladatot lát el a kliensek részére

A kliens és a bean kommunikációja szinkron módon történik

Hatékonyabb lehet, mint a stateful bean

Implementálhat web szolgáltatást

Page 11: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 11

Singleton session bean használataSingleton session bean használata

Az állapotát az alkalmazás teljes életciklusára meg kell őriznie

Több kliens egyszerre, konkurrens módon kell használja

Feladatokat láthat el az alkalmazás indulása és leállása során

Implementálhat web szolgáltatást

Page 12: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 12

A Message-Driven bean (MDB)A Message-Driven bean (MDB)

Olyan bean, amely JMS üzenetek figyelésére képes. (Implementálnia kell a javax.jms.MessageListener interface-t.) Más üzenetkezelő rendszer része is lehet.Különbségek a session bean-el szemben:

A kliense nem érheti el interface-en keresztül.Csak bean osztálya van.A kliens nem tudja meghívni direkt módon egyetlen metódusát sem.

Page 13: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 13

A Message-Driven bean (folyt.)A Message-Driven bean (folyt.)

Hasonlóságok:Nem tárol adatokat a klienséről.

A bean minden példánya egyenértékű.

Tetszőleges kliensektől érkező üzeneteket fel tud dolgozni.

Page 14: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 14

A Message-Driven bean (folyt.)A Message-Driven bean (folyt.)

Legfontosabb tulajdonságaiEgy kliens üzenet hatására lép működésbe.Aszinkron módon működik.Viszonylag rövid életű.Nem reprezentál perzisztens adatokat, de képes adatbázis elérésre.Működhet tranzakcionális módon.Állapot mentesHa egy üzenet érkezik, a konténer meghívja a bean onMessage metódusát.

Page 15: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 15

A message-driven bean használataA message-driven bean használata

A session bean és kliensének kommunikációja az interface-én keresztül szinkron.

Session bean-ek kommunikálhatnak egymással JMS-en keresztül is, de a fogadott üzenet feldolgozása akkor is szinkron módon történik.

Ha aszinkron üzenet feldolgozásra van szükség, ahhoz message-driven bean kell.

Page 16: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 16

Session Bean-ek eléréseSession Bean-ek elérése

no-interface viewa bean osztály public metódusaihasonlóan használhatjuk, mintha egy egyszerű objektum lenne, de

nem kell példányosítania konténer szolgáltatásai transzparensek a kliens számára

business interfaceamit a bean osztályának implementálnia kelltöbb interface-t is implementálhat

Page 17: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 17

Elérés a kliensbőlElérés a kliensből

referencia megszerzése dependency injection alapján

egyszerű: elég a javax.ejb.EJB annotáció használata

a kliensneknek a Java EE környezetben kell futnia. Pl:• JSF web alkalmazás

• JAX-RS web szolgáltatás

• más enterprise bean

• Java EE application client

referencia megszerzése JNDI támogatássalJava EE környezeten kívüli kliensek számára

Page 18: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 18

remote és local elérési mód remote és local elérési mód

A döntés szempontjai:beanek közötti függőség foka – gyakran hívják egymásta kliens fajtája – lehet, hogy másik gépen futskálázhatóság: a lokális élérésű bean nehezebben telepíthető átteljesítmény: a lokális elérés nyilván "olcsóbb"

Egy bean technikailag felkészíthető mindkét elérési módra, de ezt ritkán alkalmazzukHa bizonytalanok vagyunk a döntésben, remote elérést válasszunk - rugalmasság

Page 19: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 19

Lokális elérésLokális elérés

A kliens ugyanabban az alkalmazásban van

Lehetweb komponens

másik EJB

A kliens számára az elérni kívánt EJB helye nem transzparens

Paraméterek, visszatérési érték referencia szerint

Page 20: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 20

Lokális elérésű bean készítéseLokális elérésű bean készítése

Nem interfész nézet: csak a bean osztályt kell definiálni: @Session

public class MyBean { ... }

Lokális interface:@Local

public interface InterfaceName { ... }

@Local(InterfaceName.class)

public class BeanName implements InterfaceName { ... }

Page 21: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 21

Lokális elérésű bean használataLokális elérésű bean használata

Lokális nem interfész nézet

Nem kell new

Osztály neve a típus@EJBExampleBean exampleBean;vagyExampleBean exampleBean = (ExampleBean)

InitialContext.lookup("java:module/ ExampleBean");

Page 22: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 22

Lokális elérésű bean használata (folyt.)Lokális elérésű bean használata (folyt.)

Lokális interfészen keresztül

Nem kell new

Interface neve a típus@EJBBeanInterface exampleBean;vagyBeanInterface exampleBean = (BeanInterface)

InitialContext.lookup("java:module/BeanInterface");

Page 23: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 23

remote elérésremote elérésA kliens futhat másik gépen / JVM-benLehet lokális isLehet

web komponensalkalmazás kliens (application client)másik EJB

A bean osztálynak implementálnia kell az üzleti interfészt. (Nem interfész nézet nincs!)Az elérendő bean helye transzparens a kliens számáraParaméterek, visszatérési érték érték szerint -Másolat!!!

Page 24: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 24

remote elérésű bean készítéseremote elérésű bean készítése

@Remote

public interface InterfaceName { ... }

@Remote(InterfaceName.class)

public class BeanName implements InterfaceName { ... }

Page 25: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 25

remote elérésű bean használataremote elérésű bean használata

Típus az interface!

@EJB

Example example;

vagy

ExampleRemote example = (ExampleRemote)

InitialContext.lookup("java:global/myApp/ExampleRemote");

Page 26: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 26

EJB kiadásaEJB kiadása

EJB JAR állományokban -> EAR

3.1-től WAR fájlbanWEB-INF/classes – osztályok

WEB-INF/lib – jar fájlok

Nem kell ejb-jar.xml, ha van helye: a META-INF

Page 27: Enterprise Beans Java EE  6  platform EJB 3.1

EJB-k kapcsolataiEJB-k kapcsolatai

Az Enterprise JavaBeans 3.1 EJB31 / 27

Page 28: Enterprise Beans Java EE  6  platform EJB 3.1

EJB-k biztonsági beállitásai XML-bőlEJB-k biztonsági beállitásai XML-ből

Az Enterprise JavaBeans 3.1 EJB31 / 28

Page 29: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 29

Elnevezési konvencióElnevezési konvenció

Szokásos az alábbi elnevezési konvenció használata

Item Syntax ExampleEnterprise bean name <name>Bean AccountBean

Enterprise bean class <name>Bean AccountBean

Üzleti interface <name> Account

Page 30: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 30

Statefull session bean életciklusaStatefull session bean életciklusa

A callback metódusok annotációkkal jelölhetők ki.

Page 31: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 31

Állapotmentes session bean életciklusaÁllapotmentes session bean életciklusa

A callback metódusok annotációkkal jelölhetők ki.

Page 32: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 32

Singleton session bean életciklusaSingleton session bean életciklusa

A callback metódusok annotációkkal jelölhetők ki.

Page 33: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 33

A message-driven bean életcilusaA message-driven bean életcilusa

Az EJB konténer általában példányok pool-ját hozza létre.

Minden példányra az alábbi életciklust alkalmazza:

Page 34: Enterprise Beans Java EE  6  platform EJB 3.1

session Bean használata JSP-bensession Bean használata JSP-ben

EL kifejezéskéntA default EL neve az osztály neve, de az első betű kicsi.

Ha más nevet szeretnénk, akkor használjuk a @Named annotációt.

Context.lookup metódus hívással.

Az Enterprise JavaBeans 3.1 EJB31 / 34

Page 35: Enterprise Beans Java EE  6  platform EJB 3.1

SessionBeanSessionBean interfész (opcionális) interfész (opcionális)

régi verzióknál kötelező volt implementálni.

4 metódus: setSessionContext,

ejbRemove,

ejbPassivate,

ejbActivate

Az Enterprise JavaBeans 3.1 EJB31 / 35

Page 36: Enterprise Beans Java EE  6  platform EJB 3.1

session EJB használata távolrólsession EJB használata távolról

Érdemes a remote interfészeket külön csomagba rakni

Netbeans nem is engedi máshogy.

Az Enterprise JavaBeans 3.1 EJB31 / 36

Page 37: Enterprise Beans Java EE  6  platform EJB 3.1

Netbeans EJB támogatásNetbeans EJB támogatás

Az Enterprise JavaBeans 3.1 EJB31 / 37

Page 38: Enterprise Beans Java EE  6  platform EJB 3.1

Session EJB használata távolrólSession EJB használata távolról// Access JNDI Initial

Context. Properties p = new Properties(); p.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");

p.put("java.naming.provider.url","jnp://localhost:1099"); p.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");

InitialContext ctx = new InitialContext(p); // Change jndi name according to your server and ejb

HelloRemote remote = (HelloRemote) ctx.lookup("HelloBean/remote");

msg = "Message From EJB --> " + remote.sayHello();

http://srikanthtechnologies.com/articles/j2ee/ejb3fromswing.html

Az Enterprise JavaBeans 3.1 EJB31 / 38

Page 39: Enterprise Beans Java EE  6  platform EJB 3.1

Üzenetvezérelt beanÜzenetvezérelt bean

Az Enterprise JavaBeans 3.1 EJB31 / 39

Page 40: Enterprise Beans Java EE  6  platform EJB 3.1

üzenet vezérelt bean használataüzenet vezérelt bean használata@Resource Queue stockInfoQueue;

Context initialContext = new InitialContext();

Queue stockInfoQueue = (javax.jms.Queue)initialContext.lookup

(“java:comp/env/jms/stockInfoQueue”);

queueConnection = queueConnectionFactory.createQueueConnection(); queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queueSender = queueSession.createSender(queue);

message = queueSession.createTextMessage();

message.setText("This is message ");

queueSender.send(message);

Az Enterprise JavaBeans 3.1 EJB31 / 40

Page 41: Enterprise Beans Java EE  6  platform EJB 3.1

JNDI JNDI ((Java Naming and Directory Interface))

Bármilyen java alkalmazásban használhatjuk.

Itt ezt használjuk: java:comp/env

Hasonló mint a DNS, vagy LDAP

pl.: java:comp/env/com.example.MySessionBean/myDatabase

Bármilyen lehet a felépítése, de konvenciók vannak.

elérési út -> objektum összerendelés (binding).

nevek séma alapján: scheme : scheme-specific-parts (pl.: ldap: vagy java, ORB, …)

Érdemes egyedi nevet használni!

java:comp/env/com.acme.example.MySessionBean/myDatabase

A webapp, EJB konténerek olvassák, írják. Általában van grafikus felület.

Az Enterprise JavaBeans 3.1 EJB31 / 41

Page 42: Enterprise Beans Java EE  6  platform EJB 3.1

Elnevezési konvenciókElnevezési konvenciók

java:comp

java:app: ugyanabból az appból

java:module: ugyanabból a modulból

java:global

Az Enterprise JavaBeans 3.1 EJB31 / 42

Page 43: Enterprise Beans Java EE  6  platform EJB 3.1

Elnevezési konvenciókElnevezési konvenciók

Saját EJB, adatok: java:comp/env/teljes_nev/adattag

java:comp/env/mail,

java:comp/env/jms,

java:comp/env/persistence,

java:comp/UserTransaction,

java:comp/ORB,

java:comp/TimerService,

java:comp/EJBContextAz Enterprise JavaBeans 3.1 EJB31 / 43

Page 44: Enterprise Beans Java EE  6  platform EJB 3.1

Elnevezési konvenciók remote EJB-reElnevezési konvenciók remote EJB-re

• java:global[/<app-name>]/<module-name>/<bean-name>• app-name akkor van, ha ear file-ban volt.

• XXX.ear esetén XXX

• vagy <app-name> elem az application.xml file-ból.

module-name • annak a modulnak a neve, ahol az ejb van vagy

• <module-name> elem a ejb-jar.xml-nak.

bean-name:

• osztály neve,

• vagy az annotáció name atribútuma

• vagy a <ejb-name> eleme a ejb-jar.xml.

• glassfish kiírja a szerver log-ba.

Az Enterprise JavaBeans 3.1 EJB31 / 44

Page 45: Enterprise Beans Java EE  6  platform EJB 3.1

JNDI architektúraJNDI architektúra

Az Enterprise JavaBeans 3.1 EJB31 / 45

Page 46: Enterprise Beans Java EE  6  platform EJB 3.1

InjekcióInjekció

• Az EJB konténer végzi.• Miután létrehozta bean-t, de mielőtt az üzleti metódust

kiszolgálná.• JNDI-ben keres : java:comp/env/ejb vagy ez alatt

@Resource(name="myDB") //type is inferred from variable

public DataSource customerDB;

@Resource public UserTransaction utx;

@Resource SessionContext ctx;

Az Enterprise JavaBeans 3.1 EJB31 / 46

Page 47: Enterprise Beans Java EE  6  platform EJB 3.1

Injekciót használó EJBInjekciót használó EJB

@Stateless public class EmployeeServiceBean

implements EmployeeService {

...

// The maximum number of tax exemptions, configured by Deployer

@Resource int maxExemptions;

Az Enterprise JavaBeans 3.1 EJB31 / 47

Page 48: Enterprise Beans Java EE  6  platform EJB 3.1

JNDI beállítása ejb-jar.xml-bőlJNDI beállítása ejb-jar.xml-ből<enterprise-beans>

<session>

<ejb-name>EmployeeService</ejb-name>

<ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>

<env-entry>

<env-entry-name>maxExemptions</env-entry-name>

<env-entry-type>java.lang.Integer</env-entry-type>

<env-entry-value>15</env-entry-value>

</env-entry>

Az Enterprise JavaBeans 3.1 EJB31 / 48

Page 49: Enterprise Beans Java EE  6  platform EJB 3.1

Kiolvasás JNDI-bőlKiolvasás JNDI-ből

// Obtain the enterprise bean’s environment naming context.

Context initCtx = new InitialContext();

Context myEnv = (Context)initCtx.lookup("java:comp/env");

// Obtain the maximum number of tax exemptions

// configured by the Deployer.

Integer maxExemptions =

(Integer)myEnv.lookup(“maxExemptions”);

Az Enterprise JavaBeans 3.1 EJB31 / 49

Page 50: Enterprise Beans Java EE  6  platform EJB 3.1

Elfogók (Interceptor)Elfogók (Interceptor)

Bean-ekeseményeihez

üzleti metódus hívásaihoz

lehet elfogókat rendelni.

• Egy bean-hez több Interceptor is tartozhat

• Egy int. több beanhez is kapcsolódhat.

• Annotációval, vagy telepítő leíróban lehet beállítani.

• @Interceptors a bean osztályra.

• ejb-jar-ban lehet default interc.- okat definiálni.

Az Enterprise JavaBeans 3.1 EJB31 / 50

Page 51: Enterprise Beans Java EE  6  platform EJB 3.1

Üzleti metódus elfogókÜzleti metódus elfogók

Around-Invoke annotáció vagy around-invoke bejegyzés a leíróban.

Az elfogó metódus aláírása: Object <METHOD>(InvocationContext) throws Exception

Bármilyen hozzáférésű lehet.

Ugyanabban a biztonsági és tranzakció környezetben fut, mint maga megfigyelt bean.

Az Enterprise JavaBeans 3.1 EJB31 / 51

Page 52: Enterprise Beans Java EE  6  platform EJB 3.1

Esemény elfogókEsemény elfogók

PostConstruct, PreDestroy, PostActivate, és PrePassivate annotációk.

post-construct, pre-destroy, post-activate, és pre-passivate xml bejegyzések.

Nem tudni, hogy milyen biztonsági és tranzakció környezetben fut.

Metódus aláírása: void <METHOD> (InvocationContext)

Az Enterprise JavaBeans 3.1 EJB31 / 52

Page 53: Enterprise Beans Java EE  6  platform EJB 3.1

Megfigyelő példa osztályMegfigyelő példa osztálypublic class MyInterceptor {

@PostConstruct

public void any-method-name (InvocationContext ctx) {

ctx.proceed();

}

@PreDestroy

public void any-other-method-name (InvocationContext ctx) {

...

ctx.proceed();

}

}

Az Enterprise JavaBeans 3.1 EJB31 / 53

Page 54: Enterprise Beans Java EE  6  platform EJB 3.1

InvocationContextInvocationContext interfész metódusai interfész metódusai

public interface InvocationContext {public Object getTarget();

public Method getMethod();

public Object[] getParameters();

public void setParameters(Object[] params);

public java.util.Map<String, Object> getContextData();

public Object proceed() throws Exception;

}

Az Enterprise JavaBeans 3.1 EJB31 / 54

Page 55: Enterprise Beans Java EE  6  platform EJB 3.1

Elfogó beállítása bean-bőlElfogó beállítása bean-ből

@Stateless

public class MyBean ... {

public void notIntercepted() {}

@Interceptors(org.acme.MyInterceptor.class)

public void someMethod() {

}

@Interceptors(org.acme.MyInterceptor.class)

public void anotherMethod() {

}

}

Az Enterprise JavaBeans 3.1 EJB31 / 55

Page 56: Enterprise Beans Java EE  6  platform EJB 3.1

Interceptor az összes metódusraInterceptor az összes metódusra

@Stateless

@Interceptors(org.acme.AnotherInterceptor.class)

public class MyBean ... {

...

@Interceptors(org.acme.MyInterceptor.class)

@ExcludeClassInterceptors

public void someMethod() {

}

}Az Enterprise JavaBeans 3.1 EJB31 / 56

Page 57: Enterprise Beans Java EE  6  platform EJB 3.1

Az Enterprise JavaBeans 3.1 EJB31 / 57

IrodalomIrodalom

The J2EE Tutorial

Enterprise JavaBeans Technology Fundamentals Short Course

Braun Tamás: Internet banki alkalmazás fejlesztése J2EE technológiával és az IBM Websphere alkalmazás szerverrelDiplomaterv, Általános Informatikai Tanszék, Miskolc, 2002.