Težave pri razlagi uporabe webservica (prosim za p

Vsi vaši problemi s programsko opremo.
Odgovori
peterv
Prispevkov: 987
Pridružen: 29.03.2002 13:24:32

Težave pri razlagi uporabe webservica (prosim za p

Odgovor Napisal/-a peterv » 19.02.2008 08:55:43

Pozdravjeni :)
Spet moram zagovarjati pravilno uporabo webservisa oziroma nekega razreda v podjetju..
Za poslovnega partnerja sem izdelal en kup webservisov, ki so bazne procedure in funkcije...
Vsi tej webservisi v primeru napake vračajo nek Exception kar se mi zdi čisto ok saj s tem lahko vem za kakšno napako gre..
Uporabnik - naročnik webservisa pa predlaga sledeče...
Da naredim webservis ki v primeru uspešnega vnosa vrne pač nek ID v primeru napake pa NULL...

E... tukaj mislim da ni OK.. Če vrnem Null v primeru neke napake in ne Exception potem sploh ne vem za kakšen tip napake gre?
Ali je padla baza ali je morda neuspeli insert zaradi kakšnega foreign key-a etc...

Kaj pravite vi?

Moje varianta:

Koda: Izberi vse

  
BigDecimal i;
try
{
  i= klicnegeaWebservisa();
}
catch(Exception e)
{
  System.out.print("Napaka: " + e.toString());
}
Kaj želi programer na drugi strani in trdi da je to pravilno

Koda: Izberi vse

 
BigDecimal i = klicnegeaWebservisa();
if (i != null)
{
  //vnos je uspel;
}
else
{
 // vnos ni uspel
}
 

Torej...
V prvem primeru točno vem če odleti webservis
V drugem pa ne vem (vem da je nekaj odletelo ker dobim null ampak ne vem zakaj (vzrok napake) + dodati moram logiko v webservisu da pač ne "proži" exception-a ampak returna Null...


Prosim za vaše mnenje ker ga bom uporabil kot "obrambo" :)
Zadnjič spremenil peterv, dne 19.02.2008 08:57:14, skupaj popravljeno 1 krat.

aoven
Prispevkov: 2338
Pridružen: 27.06.2001 23:56:07

Težave pri razlagi uporabe webservica (prosim za p

Odgovor Napisal/-a aoven » 19.02.2008 10:25:26

Če bi vse skupaj delal v .NET-u, bi bilo pametovanje odveč. Usmeril bi ga na avtoritativen vir in izpostavil tole:
Propagating errors back to a client is done by throwing exceptions.
Ampak to morda ne drži za javanske web servise.

Aleksander

aoven
Prispevkov: 2338
Pridružen: 27.06.2001 23:56:07

Težave pri razlagi uporabe webservica (prosim za p

Odgovor Napisal/-a aoven » 19.02.2008 10:30:51

No, očitno tudi v javanskem svetu ni nič drugače:
The calling program or consumer must be notified that an error occurred in the invoked method or producer. This is where sophisticated, programmatic exception handling comes into play
:)

Aleksander

Uporabniški avatar
Lee_Nover
Prispevkov: 3653
Pridružen: 20.05.2001 14:31:55

Težave pri razlagi uporabe webservica (prosim za p

Odgovor Napisal/-a Lee_Nover » 19.02.2008 11:34:04

definitivno propagacija exception-ov
.. my 2 c ..
- I hate noobs -

tantadruj
Prispevkov: 71
Pridružen: 31.12.2003 09:34:21

Težave pri razlagi uporabe webservica (prosim za p

Odgovor Napisal/-a tantadruj » 19.02.2008 14:44:20

Mogoče je tvoj uporabnik iz C sveta, kjer je kar normalna praksa, da funkcije vračajo kot rezultat neko število, iz katerega se vidi koda napake, oz. 0, če ni napake. Mogoče uporablja prog. jezik, ki ne pozna izjem. Če pa uporablja Javo, potem ni razloga, da bi se odpovedal koristim, ki jih prinašajo izjeme. No, nekaj let nazaj so bile težave, ker soap specifikacija ni natančno določevala nekaterih zadev pri soap fault xml elementih (nekaj z namespace-i) in vem, da smo imeli precej težav, ko so hoteli s C# konzumirati naše javanske web servise. Očitno si je Microsoft drugače razlagal specifikacije kot ustvarjalci knjižnice, ki smo jo mi uporabljali.

Lahko ti tudi povem, da je mnogo web servisov takih, ki vračajo kodo napake namesto napake same. To so npr. hoteli na eni firmi, ki je pisala softver za integracijo z enim od naših sistemov. Hoče reči le, da ni tako nenavadno, da se developerji izogibajo soap fault-om, zaradi že zgoraj omenjenih težav pri specifikacijah SOAP protokola, ko se povezujejo sistemi iz različnih svetov (Java, C, C#, Python, itd.).

peterv
Prispevkov: 987
Pridružen: 29.03.2002 13:24:32

Težave pri razlagi uporabe webservica (prosim za p

Odgovor Napisal/-a peterv » 19.02.2008 18:04:37

he he.. C# koristijo..

No super! če bi lahko vam bi častil pivo ;)

Odgovori