Szoftverfejlesztés J2EE platformon - Labor: EJB 2.1
Berényi Zsolt, zberenyi@aut.bme.hu
Projekt létrehozása
- Netbeans 5.5 beta 2-t inditunk
- Runtime fulon el kell inditani a Sun Java System Application Server-t
- Projects fulon jobb click, New Enterprise Project
- Name: Calculator,
- J2EE 1.4, sima client is kell
- ejb projekten belul New Session Bean
- name: Calculator, package: calculatorapp.ejb, remote interface is kell
- build az Enterprise projekten
- Files fulon megjelennek a generalt forrasok
- Calculator / Calculator-ejb / src / java / calculatorapp / ejb
Session bean
- CalculatorBean.java-t megnyitjuk, forraskodon right click, EJB methods / Add business method
- int add(int op1, int op2)-t osszekattintani, local es remote interface is kell
- CalculatorLocal interfesz nem valtozott, csak a CalculatorLocalBusiness
- irjuk meg az add metodust
Meghívás vastag kliensből
- Files Calculator / Calculator-app-client / src / java Calculator / Main.java
- forrason jobb gomb, Enterprise Resources / Call Enterprise Bean
- kivalasztjuk a Calculator session beant es atallitjuk remote interfeszre, mert vastag kliensbol csak igy erheto el
- generalodik egy lookupCalculatorBean() metodus
- hivas:
public static void main(String[] args) {
Main main = new Main();
CalculatorRemote calc = main.lookupCalculatorBean();
int result;
try {
result = calc.add(12, 34);
System.out.println(result);
} catch (RemoteException ex) {
ex.printStackTrace();
}
}
Futtatás
- Enterprise projecten build majd deploy
- properties-ben run fulon beallitjuk, hogy a vastag kliens induljon
- Run Project
Meghívás servletből
- Calculator-war / New / Servlet
- Name: CalcServlet
- Enterprise Resources / Call Enterprise Bean
* CalculatorSB, local interfesz eleg
- processRequest-ben kommentet szuntessuk meg, es szurjuk be a kovetkezo kodot:
int result = lookupCalculatorBean().add(45,879);
out.println("Eredmeny: " + result);
Servlet futtatása
- Startup projektet allistuk vissza a webes projektre
- Calculator / Build, Deploy majd Run
- A bongeszoben irjuk az url utan, hogy CalcServlet
Önálló feladat
- Stateful session bean-ben tarolodik egy vasarloi kosar
- Elemei:
class Item implements Serializable {
Integer id;
String name;
double price;
}
- Session metodusok:
- void addItem(Item newItem); // 1000-nel dragabbat ne adjon hozza
- Collection getItems();
- Servletbol meg lehet nezni a kosar tartalmat es lehet bele pakolni
-- Peti - 2006.09.29.