Moduļa 8.3. vingrinājumi

ejbexercise7: Metodes pievienošana "Hello World" sesijas komponentam.

Mērķis: Iepazīties ar sesijas komponentu programmēšanas modeli un jaunu metožu pievienošanu sesijas komponentam.

Darbības īsumā:

  • Pievienot sesijas komponentam metodi, kas saskaita divus skaitļus.
  • Pievienot metodes deklarāciju komponenta saskarnei HelloWorldSessionEJB. Norādiet , ka šī metode izsauc izņēmumu (exception) RemoteException:
    long summa(long a,long b) throws RemoteException.
    
  • EJB klienta klasē HelloWorldSessionEJBClient pievienojiet šīs metodes izsaukumu. Rezultātu parādiet uz ekrāna ar komandu System.out.println(...).
  • Izsauciet iepriekšējā uzdevumā minētās komandas.

ejbexercise8: Jaunas metodes pievienošana EJB komponentiem.

Mērķis: Pievienot metodi, kas no konta noņem norādīto summu.

Darbības īsumā:

  • Metode withdraw(BigDecimal amount) jāpievieno konta komponenta klasē un tā lokālajā komponenta saskarnē.
  • Metode withdraw(BigDecimal amount) jāpievieno sesijas komponenta klasē un tā attālinātajā komponenta saskarnē.

Darbību apraksts:

  • Konta komponenta saskarnei AccountEJBLocal jāpievieno metodi void withdraw(BigDecimal amount) throws InsufficientAmountException.
  • Šo metodi nepieciešams implementēt komponenta klasē AccountEJBBean. Ja kontā nav pieprasītās summas, tad ir jāizsauc izņēmums InsufficientAmountException.
  • Sesijas komponenta saskarnē BankSessionEJB jāpievieno metode:
    void   withdraw(String kontaNumurs,BigDecimal amount)  throws RemoteException, 
    InsufficientAmountException,DoesntExistException.
    
  • Sesijas komponenta klasē šī metode ir jāimplementē. Tai ir jāatrod konts pēc norādītā numura, izsaucot metodi
    AccountEJBLocal account =
            getAccountEJBLocalHome().findByPrimaryKey(kontaNumurs).
    
  • Jāizsauc konta komponenta metode account.withdraw(amount).
  • Metodes kods jāieliek try blokâ ir izņēmumi ir jāapstrādâ šādi:
    try {  ... } 
    catch (InsufficientAmountException ex) {
        this.ctx.setRollbackOnly();
        throw ex;
    } catch (FinderException ex) {
        throw new DoesntExistException("Account not found");
    } catch (NamingException ex) { 
        throw new EJBException(ex);
    }
    
  • Komponentus var pārkompilēt un izvietot uz servera ar komandām:
    ant ear
    ant deploy