TDDD05 ¡EJB ¡Lab ¡ (Part ¡of ¡slides ¡reused ¡from ¡Mikhail’s) ¡ Lu ¡Li ¡ lu.li@liu.se ¡
Agenda ¡ • EJB ¡brief ¡introducDon ¡ • PracDcal ¡hints ¡
Why ¡EJB ¡ • EJBs ¡is ¡a ¡powerful ¡component ¡model ¡for ¡ building ¡distributed, ¡server-‑side, ¡and ¡Java-‑ based ¡enterprise ¡applicaDon ¡components. ¡ • Code ¡reuse ¡by ¡middleware ¡service, ¡such ¡as ¡ object ¡life-‑cycle ¡management, ¡resource ¡ (beans, ¡database ¡connecDon) ¡mapping ¡etc. ¡
EJB ¡architecture ¡
EJB ¡architecture ¡
EJB ¡architecture ¡
Connect ¡Glassfish ¡to ¡Database ¡ • Configure ¡MySQL ¡database ¡ • Copy ¡driver ¡to ¡Glassfish ¡directory ¡ • Configure ¡a ¡connecDon ¡pool ¡(For ¡example ¡ “TDDD05_MySQL”), ¡and ¡do ¡a ¡ping ¡test ¡ • Configure ¡JDBC ¡resource ¡(For ¡example ¡ “TDDD05_JDBC”) ¡to ¡use ¡the ¡connecDon ¡pool ¡ (“TDDD05_MySQL”) ¡
Create ¡an ¡JPA ¡to ¡use ¡database ¡ • JPA ¡is ¡a ¡kind ¡of ¡EJB ¡for ¡interacDon ¡with ¡ database. ¡ • Configure ¡persistence.xml ¡under ¡META-‑INF ¡ folder, ¡if ¡no ¡such ¡xml ¡file ¡found, ¡create ¡one. ¡
Create ¡an ¡Stateless ¡Bean ¡ • Create ¡a ¡EJB ¡project ¡ • Add ¡library ¡appserv-‑rt.jar, ¡j2ee.jar ¡
Create ¡an ¡Stateless ¡Bean ¡ • Create ¡an ¡interface ¡
Create ¡an ¡Stateless ¡Bean ¡ • Create ¡an ¡implementaDon ¡ ¡
Deploy ¡EJB ¡ • Export ¡jar ¡ • Start ¡Glassfish ¡ • Copy ¡jar ¡file ¡into ¡the ¡autodeploy ¡directory ¡ • Check ¡the ¡file ¡generated ¡ • There ¡is ¡another ¡way ¡to ¡deploy. ¡(Covered ¡ later) ¡
JNDI ¡lookup ¡
JNDI ¡ApplicaDon ¡
Dependency ¡injecDon ¡
DI ¡ApplicaDon ¡
DI ¡ApplicaDon ¡ • Deployment ¡ ¡(Glassfish_Home)/bin/asadmin ¡deploy ¡– retrieve ¡. ¡Ex1-‑ee.ear ¡ • ExecuDon ¡ ¡(Glassfish_Home)/bin/Appclient ¡–client ¡./ex1-‑ eeClient.jar ¡–mainclass ¡client.AppClient ¡
Facade ¡
Summary ¡ • You ¡needs ¡a ¡MySQL ¡with ¡a ¡designed ¡table. ¡ • You ¡needs ¡to ¡make ¡a ¡Glassfish ¡to ¡know ¡the ¡ connecDon ¡to ¡your ¡MySQL ¡ • You ¡needs ¡a ¡JPA ¡to ¡use ¡the ¡connecDon ¡and ¡ interact ¡with ¡MySQL ¡ • You ¡needs ¡a ¡Stateless ¡session ¡bean ¡to ¡use ¡the ¡ JPA. ¡ ¡
Summary ¡ • You ¡needs ¡to ¡declare ¡an ¡interface ¡to ¡expose ¡ funcDonality ¡to ¡external ¡clients. ¡ • You ¡needs ¡a ¡JNDI ¡lookup ¡client ¡which ¡can ¡run ¡ independently ¡ • You ¡needs ¡a ¡DI ¡client ¡in ¡connecDon ¡with ¡EJB ¡ (Two ¡components ¡are ¡package ¡in ¡EAR ¡project), ¡ to ¡be ¡deployed ¡in ¡Glassfish ¡and ¡invoke ¡them ¡ by ¡Appclient. ¡
Some ¡suggesDons ¡ • Try ¡to ¡understand ¡how ¡different ¡components ¡ interact ¡with ¡each ¡other ¡at ¡implementaDon ¡ level. ¡ • Do ¡a ¡thorough ¡unit ¡tesDng ¡before ¡integraDng ¡ all ¡components ¡together ¡ • Today’s ¡lesson ¡covers ¡most ¡but ¡not ¡all ¡steps ¡ needed ¡for ¡lab ¡2. ¡Feel ¡free ¡to ¡change ¡some ¡ steps ¡if ¡you ¡think ¡it ¡is ¡necessary. ¡
QuesDons? ¡ ¡
Recommend
More recommend