You are here:   Praktikum4
Register   |  Login

Lühikirjeldus

   Minimize

Praktikumis tutvustatakse hajussüsteemi veahaldust kasutades 2. praktikumis tehtud veebiteenust.

Praktikumi juhend

   Minimize

Praktikumi slaidid

Praktikumis kasutatav kood asub SVNis:

https://cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum4/Yl4_Kodune_Klient

https://cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum4/Yl4_Kodune_Server

 

  1. Kui arvutis veel ei ole, siis alla laadida Eclipse aadressilt http://elrond.tud.ttu.ee/~ekrikuh/idu0080.zip ning lahti pakkida C:\temp kausta.
  2. Avada Eclipse ning seadistada: Window -> Preferences -> Web Services -> CXF -> määrata Apache CXF juurkataloog.
  3. Teha checkout projektidele Yl4_Kodune_Server ja Yl4_Kodune_Klient. Probleemide lahendamine: Klassi arvutites peab serveri checkout järel vajadusel määrama JRE asemel JDK kasutamise. Serveri checkout järel peab vajadusel määrama Target Runtime: J2EE Preview (problem, rightclick, quickfix, add target runtime).
  4. Käivitada ainult klient (ilma serverita).
  5. Kinni püüda viga ja kuvada veateade.
  6. Proovida ühendada 20 korda iga 2 sekundi tagant. Käivitada server samal ajal.
  7. Serveri projektis luua pakett ee.ttu.idu0080.hinnakiri.util ning lisada sinna klass, mis valideerib isikukoodi (Google: isikukoodi valideerimine java)
  8. Serveris muuta klassi HinnakiriServiceImpl meetodit getHinnakiri() nii, et see kontrolliks, kas päringu parameetriks on korrektne isikukood. Kui ei, siis visata WebServiceException koos veateatega.
  9. Käivitada server ning proovida SoapUI kaudu erinevaid isikukoode sisestada.
  10. Kliendis püüda kinni SOAPFaultException

NB. Isikukoodi valideerimine EI SISALDU koduülesandes! Praktikumi õppejõuga kokkuleppel võib isikukoodi valideerimise eest saada lisapunkte.Sellisel juhul saadab klient 2 parameetrit: isikukoodi ja piirhinna.

 

Kodune ülesanne

   Minimize

Koduse ülesande algne kood asub https://cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum4/ - kaustades Yl4_Kodune_Klient ja Yl4_Kodune_Server. Aluseks on võetud 2. praktikumi tunniülesande kood, kuid teenust on muudetud nii, et hinnakirja filtreeritakse vastavalt sisendparameetrina antud maksimaalsele hinnale.

Paketti ee.ttu.idu0080.hinnakiri.exceptions on näitena lisatud HinnakiriNumberFormatException ning HinnakiriNumberFormatFault. Kui teenusele etteantud hind ei ole numbrilises formaadis, siis visatakse teenuse poolt exception ning seesama erind püütakse kliendi poolt kinni. Fault klassi kasutatakse aga erindite haldamiseks rakenduste vahel. Erind ühes rakenduses võib olla väga erineva tähendusega erindist teises rakenduses, seepärast kasutatakse veebiteenustes fault objekte, mida erinevad rakendused saavad omavahel vahetada. Exception sisaldab endas rakendusespetsiifilist infot, näiteks millisel koodireal viga juhtus, fault aga ainult üldisemat veakirjeldust.

Koduse ülesande lahendamiseks on vaja teha järgnev:

  1. Lahendada teenuse pool olukord, kui etteantud hind on negatiivne. Luua selle jaoks täiendavad exception ja fault klassid, visata serveri pool exception ja püüda see kliendi pool kinni. Klasside nimed valige ise.
  2. Analoogselt lahendada teenuse pool olukord, kui etteantud hind on null. 
  3. Analoogselt lahendada teenuse pool olukord, kui etteantud hind on suurema täpsusega kui 2 komakohta (nt. 12,34 on korras, aga 12,345 on juba liiga täpne).
  4. Eelmise 3 punkti tulemusena peab koos etteantud näidetega olema paketis ee.ttu.idu0080.hinnakiri.exceptions kokku 8 klassi. Selle paketi sisu peab Yl4_Kodune_Klient ja Yl4_Kodune_Server projektides olema täpselt ühesugune. Samuti peab ühtima HinnakiriService.java fail.
  5. Klient peab kinni püüdma kõik loodud erindid ning nende kohta väljastama arusaadavad teated.
  6. Kui kliendil ei õnnestu teenuse poole ühendada (server on maas vms.), siis peab klient proovima 10 korda ühendada ning seejärel väljastama veateate. Ühelgi teisel juhul ei tohi tsükkel käivutuda rohkem kui üks kord.
  7. Ülesanne peab olema SVN'is tagitud.