budskab, et budskab, drevet bean er en form for virksomhed, som er gældende fra ejb - container, når den modtager en besked fra kø eller emne.besked drevet bean er statsløse bønne og bruges til at gøre opgave asynkront med., der viser, anvendelse af besked drevet bean, vil vi gøre brug af ejb persistens kapitel, og vi skal gøre følgende opgaver,.,,, trin 1.skabe tabel i database (henviser til, ejb persistens, kapitel).,,, trin 2.skabe enhed, klasse, der svarer til tabel (henviser til, ejb persistens, kapitel).,,, trin 3.skabe datasource og vedholdenhed enhed (henviser til, ejb persistens, kapitel).,,, trin 4.skabe en statsløs ejb under entitymanager instans (henviser til, ejb persistens, kapitel).,,, trin 5.ajourføring af statsløse ejb. tilføje metoder at tilføje oplysninger og få oplysninger fra databasen via enhed forvalter (henviser til, ejb persistens, kapitel).,,, trin 6.skabe en kø ved navn, bookqueue, i jboss, automatisk anvendelse fortegnelse.,,, trin 7.en computer er baseret på anvendelse i klient vil sende besked til køen.,,, trin 8.skabe et budskab drevet bean, der skal anvende de statsløse bean ved kundens data.,,, trin 9.ejb beholder jboss ringer til ovennævnte meddelelse drevet bønne og give det budskab, at kunden vil sende til.,,, skaber kø, opretter en fil, der hedder jbossmq-destinations-service.xml, hvis der ikke findes på < jboss anlæg mappe > > server > standard > deployere mappe. her er vi ved at skabe en kø ved navn bookqueue, jbossmq-destinations-service.xml, < mbean code = "org. jboss. mq. server. jmx. kø" navn = "jboss. mq. destination: service = kø navn = bookqueue" > < afhænger af frivillig attribut navn = "destinationmanager" > jboss. mq: service = destinationmanager < /afhænger > < /mbean >, når du starter jboss, vil du se en tilsvarende post i jboss log.10:37:06167 info [queueservice] kø [/kø /bookqueue] begyndte, fullsize = 200.000, pagesize = 2000, downcachesize = 2000...,, skabe besked drevet bean, @ messagedriven (navn = "bookmessagehandler", activationconfig = {@ activationconfigproperty (propertyname = "destinationtype", propertyvalue = "javax. jms. kø"), @ activationconfigproperty (propertyname = "mål", propertyvalue = "/kø /bookqueue")}) offentlige klasse librarymessagebean gennemfører messagelistener {@ ressource, private messagedrivencontext mdctx; @ ejb librarypersistentbeanremote librarybean; offentlige librarymessagebean() {} offentlige tomrum onmessage (meddelelse meddelelse) {}},,, librarymessagebean er annoatated med @ messagedriven anmærkning til at markere det budskab drevet bean.,,, dens egenskaber er defineret som destinationtype - kø og bestemmelsessted - /kø /bookqueue.,,,, det gennemfører messagelistener grænseflade, som udsætter onmessage metode.,,,, det er messgedrivencontext som ressource,.,,,, librarypersistentbeanremote statsløse bean er injiceret i bønnen for vedholdenhed, bygge formål. ejbcomponent projekt og anvende den på jboss.efter bygning og udsender ejb modul, vi har brug for en kunde til at sende et budskab til jboss kø. eksempel anvendelse, lad os skabe en test ejb ansøgning til testmeddelelse drevet bean., stepdescription 1create et projekt med et navn, ejbcomponent under en pakke, com.tutorialspoint.entity, som forklaret i den, ejb - skabe anvendelse, kapitel.du kan også bruge projektet skabt i, ejb - skabe anvendelse, kapitel som sådan i dette kapitel, til at forstå, ejb persistens begreber.2create, book.java under - pakken, com.tutorialspoint.entity, som blev oprettet i ejb persistens, kapitel 3create, librarypersistentbean.java, og librarypersistentbeanremote, som blev oprettet i ejb persistens, kapitel 4create, jboss-ds.xml i, ejbcomponent > fælde, servietter og persistence.xml i, ejbcomponent > src > conf, mappe.denne folder kan ses i filer regning i netbeans som oprettet i, ejb persistens, kapitel 5create, librarymessagebean.java under en pakke, com.tutorialspoint.messagebean, og at ændre det, som vist nedenfor.6create, bookqueue, stå i kø i jboss som beskrevet ovenfor.7clean og opbygge anvendelse for at sikre, at erhvervslivet logik er at arbejde som pr. kravene.8finally, anvende anvendelse i form af jar - fil på jboss applikationsserver.jboss applikationsserver vil starte automatisk, hvis det ikke er begyndt endnu.9now skabe ejb klient, en konsol baseret på anvendelse på samme måde som forklaret i, ejb - skabe anvendelse, kapitel under emne, skabe klient adgang til ejb,.ændre det, som vist nedenfor., ejbcomponent (ejb modul), librarymessagebean.java, pakke com.tuturialspoint.messagebean; import com.tutorialspoint.entity.book; import com.tutorialspoint.stateless.librarypersistentbeanremote; import javax.annotation.resource; import javax.ejb.activationconfigproperty; import javax.ejb.ejb; import javax.ejb.messagedriven; import javax.ejb.messagedrivencontext; import javax.jms.jmsexception; import javax.jms.message; import javax.jms.messagelistener; import javax.jms.objectmessage; @ messagedriven (navn = "bookmessagehandler", activationconfig = {@ activationconfigproperty (propertyname = "destinationtype", propertyvalue = "javax. jms. kø"), @ activationconfigproperty (propertyname ="mål", propertyvalue = "/kø /bookqueue")}) offentlige klasse librarymessagebean gennemfører messagelistener {@ ressource, private messagedrivencontext mdctx; @ ejb librarypersistentbeanremote librarybean; offentlige librarymessagebean() {} offentlige tomrum onmessage (meddelelse meddelelse) (objectmessage objectmessage = ugyldig; prøve (objectmessage = (objectmessage) budskab. bog, bog = (bog) objectmessage. getobject(); librarybean. addbook (bog)} fangst (jmsexception ex) (mdctx. setrollbackonly();}}}, ejbtester (ejb klient), ejbtester.java, pakke com.tutorialspoint.test; import com.tutorialspoint. entity.book; import com.tutorialspoint.stateless.librarypersistentbeanremote; import java.io.bufferedreader; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstreamreader; import java.util.list; import java.util.properties; import javax.jms.objectmessage; import javax.jms.queue; import javax.jms.queueconnection; import javax.jms.queueconnectionfactory; import javax.jms.queuesender; import javax.jms.queuesession; import javax.naming.initialcontext; import javax.naming.namingexception; offentlige klasse ejbtester {bufferedreader brconsolereader = null egenskaber rekvisitter. initialcontext ctx; (rekvisitter = nye properties(); prøve (rekvisitter. belastning (nye fileinputstream ("jndi. egenskaber").} fangst (ioexception ex) (ex. printstacktrace();} prøve (ctx = nye initialcontext (-);} fangst (namingexception ex) (ex. printstacktrace();} brconsolereader = nye bufferedreader (nye inputstreamreader (system. i)} offentlige statisk tomrum vigtigste (string [] args) (ejbtester ejbtester = nye ejbtester(); ejbtester. testmessagebeanejb();} private tomrum showgui() {system. println ("**********************"); system. println ("velkommen til bog butikken"); system. println ("**********************"); system. tryk ("muligheder. n1.tilføj bog. n2.exit. nenter valg: ");} private tomrum testmessagebeanejb() (prøve (int valg = 1; kø kø = (kø) ctx. lookup (" /kø /bookqueue "); queueconnectionfactory fabrik = (queueconnectionfactory) ctx. lookup (" connectionfactory "); queueconnection forbindelse = fabrik. createqueueconnection(); queuesession møde = forbindelse. createqueuesession (falsk, queuesession. auto_acknowledge); queuesender afsender = samling. createsender (op), mens (valg!= 2) {snor bookname; showgui(); snor strchoice = brconsolereader. readline(); valg = tal. parseint (strchoice); hvis (valg = = 1) (system. tryk ("enter bog hedder:"); bookname = brconsolereader. readline(); bog, bog = nye book(); bog. setname (bookname); objectmessage objectmessage = samling. createobjectmessage (bog) afsender. send (objectmessage)} andre, hvis (valg = = 2) {pause.}} librarypersistentbeanremote librarybean = (librarypersistentbeanremote) ctx. lookup ("librarypersistentbean /fjern "); listen < bog > bookslist = librarybean. getbooks(); system. println (" bog (er), der er opført så vidt: "+ bookslist. size()); int - = 0 (bog, bog: bookslist) (system. println (i + 1) +". "+ bog. getname()); jeg + +) fangst (undtagen e) (system. println (f. getmessage()); f. printstacktrace();} {{(brconsolereader endelig prøve!= null) (brconsolereader. close();}} fangst (ioexception ex) (system. println (eks. getmessage())}}}}, ejbtester udfører følgende opgaver,.,,, last egenskaber fra jndi.properties og nulstille initialcontext objekt.,,, teststatefulejb() metode, jndi lookup er færdig med navn - "/kø /bookqueue" for at opnå treference i kø til rådighed i jboss.så du er skabt ved hjælp af kø.,,, så brugeren er vist et bibliotek butik brugergrænseflade, og han /hun bliver bedt om at træde valg.,,, hvis brugeren indtaster 1, system kræver bog navn og afsenderen sender den bog navn står i kø.når jboss beholder modtager denne meddelelse i kø, kræver det vores budskab drevet bean er onmessage metode.vores budskab drevet bean så sparer bog med stateful samling bean addbook() metode.samling bean er vedvarende bogen i databasen via entitymanager.,,, hvis brugeren indtaster 2, så en anden jndi lookup er færdig med navn - "librarystatefulsessionbean /fjerntliggende" for at få fjernbetjeningen business objekt (stateful ejb) og opførelse af bøger er gjort.,,, løb klient adgang til ejb, find ejbtester.java i projektet udforsker.højreklik på ejbtester klasse og udvælge, løb fil,., kontrollere følgende output i netbeans konsol. løb: ********************** velkommen til boghandel ********************** muligheder. 1.tilføj bog 2.udførsel træde valg: 1 træde bog navn: lære ejb ********************** velkommen til boghandel ********************** muligheder. 1.tilføj bog 2.udførsel træde valg: 2 bog (er), der er opført så vidt: 2 1.lære java - 1.lære ejb bygge vellykkede (i alt: 15 sekunder), produktion, jf. ovenfor, at vores budskab drevet bean modtager beskeden og lagring af bog i vedvarende oplagring og bøger er hentet fra databasen.,,,
ejb drevet bønner
Previous:ejb stateful bønner
Next Page:ejb kommentarer