[ k0nj!na @ 08.10.2007. 20:03 ] @
Pokušavam da implementiram kursnu listu. Pročitao sam uputstvo za web servis NBS-a, poterao WebServiceClient wizard u Eclipse-u, ali kada testiram eclipse-generisanog klijenta dobijem sledeći exception: Server was unable to process request. ---> Object reference not set to an instance of an object.

Posle višednevnog čeprkanja, ukapirao sam da se prilikom slanja zahteva ne šalje AuthenticationHeader (sa podacima UserName, Password i LicenceID).
Eclipse mi je generisao AuthenticationHeader.java, TempExchangeRatesServiceSoapStub.java, TempExchangeRatesServiceSoapProxy.java, GetCurrentExchangeRatesResponseGetCurrentExchangeRatesResult.java, GetCurrentExchangeRatesXML.java, GetCurrentExchangeRatesXMLResponse.java, TempExchangeRatesService.java, TempExchangeRatesServiceLocator.java, TempExchangeRatesServiceSoap.java.

Klasa TempExchangeRatesServiceSoapProxy ima metod getCurrentExchangeRatesXML(BigDecimal) - sto bi trebalo da odradi posao (vraća string), dok se u konstruktoru može proslediti samo endpoint (što je u ovom slučaju http://webservices.nbs.yu/Comm.../TempExchangeRatesService.asmx)

Eh.. sad ... ne znam gde da proturim taj AuthenticationHeader?

Any help?
[ anon315 @ 08.10.2007. 20:41 ] @
Cisto da ti kazem, ako vec ne znas. Mozes da koristis i neki http client api da bi dohvatio datoteku u xml, csv ili txt formatu i isparsirao je. Ja sam tako odradio na jednom projektu, jer tad nisam imao vremena da se bavim WS.

http://www.nbs.yu/internet/latinica/scripts/ondate.html

Naravno WS je lepse resenje.
[ sanchi @ 08.10.2007. 21:02 ] @
Pretpostavljam da je u pitanju JAX-WS, ocigledno da traze custom header tipa AuthenticationHeader.

Ima neki primer za dodavanje custom headera na:
https://jax-ws.dev.java.net/guide/SOAP_headers.htm

Srecno.






[ degojs @ 08.10.2007. 21:21 ] @
Citat:
Eh.. sad ... ne znam gde da proturim taj AuthenticationHeader?


Pa u header :-)

Ozbiljno, klase koje definišu interfejs web servisa mogu da imaju podatke u headeru, radi se tako iz prostog razloga da ne bi morao da dodaješ username/password (i licenceID u tvom primeru) kao ulazne parametre svake funkcije koju web servis izlaže.

Stvari idu otprilike ovako (kod nije nikakav konkretan primer, pišem "iz glave"; MyWebServis u primeru bi bilo ime proxy klase koju ti je Eclipse generisao, pa zameni sa potrebnim..):

Code:

MyWebServis.WebService ws = new MyWebServis.WebService();
MyWebServis.AuthenticationHeader ah = new MyWebServis.AuthenticationHeader();

ah.UserName = "username..";
ah.Password = "password..";
ah.LicenceID = 123456789;

ws.AuthenticationHeaderValue = ah;

// sada možemo da pozivamo funkcije na servisu, a username, password i licenceID će biti prosleđeni prilikom svakog poziva:

string x = ws.Funkcija1();
int a = ws.Funkcija2();
...



Potrebno je samo da pogledaš pažljivo WSDL na servisu. Primer gore je inače kako bi to išlo u C#, ali ne bi trebalo da ima neke bitnije razlike sa Javom.. valjda, ne sećam se tačno, a nemam NetBeans (ili bar Apache Axis) pri ruci.
[ ph4t @ 13.10.2007. 19:45 ] @
Dali radis sa jax-rpc ili axis2?

u slucaju axis2: http://wso2.org/library/327
[ sanchi @ 13.10.2007. 23:03 ] @
Meni ipak lici na JAX-WS, ali k0nj!na se ne javlja vise.
Grubo nas je iskoristio i odbacio. Nit se javlja niti dolazi. :)
[ Herkul @ 15.05.2008. 12:16 ] @
E ja imam isti problem, stim sto nisam u Javi nikada koristio WS.

Koristim Axis2/Tomcat6. Kada startujem Web Service Client wizard sve je OK do kreja kada dobijam null pointer exception.

URL servisa je: http://webservices.nbs.yu/Comm...ExchangeRatesService.asmx?WSDL
Da i na zadnjoj strani wizarda mi ne da da izaberem service name.


Jel zna neko u cemu je problem?

Hvala unapred.

[Ovu poruku je menjao Herkul dana 15.05.2008. u 13:31 GMT+1]
[ Herkul @ 15.05.2008. 13:38 ] @
OK problem je bio u tome sto sam koristio Axis2 umesto Axis1.
Sada mi je uspesno generisao klase, ali ne znam sta da radim sa njima.

[ Herkul @ 16.05.2008. 12:55 ] @
Anybody?