EU adószám ellenőrzése SOAP-pal

Fórumok

Ellenőriznem kellene EU adószámokat.
Erre a célra van egy weblap a
http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshom…
címen.
A szolgáltatásnak van egy SOAP interface-e is aminek a leírása itt van:
http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl

Ezt az interface-t kellene használnom. A hab a tortán, hogy Lotus Notes-ból.
Eddig eljutottam oda, hogy az Apache axis-sal generáltam hozzá java kódot az itt található leírás alapján: http://www.ibm.com/developerworks/lotus/library/domino-webservices/
de a kód csúf (== nem értem mi a fene baja van) üzenetekkel nem fordul le.

Van valakinek a tarsolyában egy jól működő java osztály, amivel az adószám ellenőrizhető?

Hozzászólások

Használj apache cxf-et inkább.

apache-cxf-2.4.2\bin\wsdl2java -client -compile http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl

Működik. Bár elég idióta kódot generált belőle, érdekes egy webservice lehet ez.

Óvatosan ezzel az API-val, mert legjobb tudásom szerint a háttérben az adott ország adatbázisához kapcsolódik, ami adott esetben lehet éppen elérhetetlen. (Ez már előfordult többször is.)

az Apache axis-sal generáltam hozzá java kódot [...] de a kód csúf (== nem értem mi a fene baja van) üzenetekkel nem fordul le

Sajnos nem vagyok meglepődve, ez megegyezik pár évvel ezelőtti tapasztalataimmal. A SOAP implementációk páronként inkompatibilisek, úgyhogy a wire protocol akár bináris is lehetne, mert egy idő után az ember egy, max két vendor cuccát teszi mindenhova, és kőtáblába vési azokat a generátor-paramétereket és WSDL megkötéseket, amelyekkel nem dől maga alá az egész miskulancia.

Lotus? Hát akkor részvétem a családnak előre is.
Mivel a checkVat elég egyszerű, lehet jobban jársz ha az axis apit kihagyod és xml-ben összerakott soap lekérdezésed közvetlenül küldöd el. Ha a túloldal nem axis ws, akkor ez soha a kurva életbe nem fog működni az összes hajad kitépése nélkül axis-szal.

Köszönöm mindenkinek a segítséget.
Bonyolutabb lett, mint gondoltam.
Az apache-cxf jó ötlet volt -- miután sikerült lefordítani működő kódot generált. Ha nem Notes lenne a képben itt vége lenne a mesének.
A fő nehézség, hogy a Notes még csak nem is 8-as, hanem 6.5 amin menni kell ez meg csak 1.3.1 java-t támogat.
Szóval a generált kódot kiköpte és száját kimosta utána.
Jason ötlete is bevált szépen kitermeltem a működő kódból az xml-t és azt küldöm közvetlenül.
Az első ötlet a SAX parser volt a visszajövő választa, de a NOtes csak a 7-es verziótól tartalmazza (6.5-ben különös módon egy használhatatlan részhalmaza van benne javaban - lotus scriptben benne az egész).
Új ötlet: legyen kézzel feldolgozás regexp illesztéssel.
(Java regexp 1.4-től) - Találtam egy nyugdíjazott apache library-t, ami úgy tűnik jól megy. Így már működik.

Bónusz kérdés:
Az org.apache.regexp használatánál hiába állítottam be a RE.MATCH_MULTILINE flaget nem illeszkedett a sorvégre a .* tud valaki valami trükköt, ami elkerülte mind a google mind az én figyelmemet?

Még egyszer köszönöm.

Köszi. Most jöttem rá magan is a singleline-ra.
Azért fordítottam le, mert a Notes (6.5) java fejlesztőkörnyezet enyhén szólva spártai így a teszteket Eclipse-ben csinálom amíg lehet. Ezzel persze befaragtam, mert amit az Eclipse lefordít az 1.6-os java-val azt a Notes kiköpi (1.3.1 java).
Az apache-cxf pedig nem generál nekem 1.3-as kódot.
Arra viszont nagyon jó volt, hogy ahelyett, hogy megtanulnám a shoap-ot az elejétől a végéig ki tudtam belőle nyerni azt a jó xml-t amit küldeni kell.

En ugy ertettem (ugy tunik felre), hogy magat a cxf-et forditottad le, nem a teszteket.

Mindenesetre nem irigyellek ezert a Notes-os csodaert.
Azon nem gondolkoztal el, hogy belosz egy java 1.6-os proxykent uzemelo szolgaltatast? Ahhoz csatlakozol Notes-bol pl.: jdk-s URL-el vagy 3.x-es commons httpclient-tel es kuldesz neki egyszeru http post uzeneteket. Aztan a proxy meghivja a kulso soap szolgaltatast mondjuk cxf segitsegevel.

Ez mondjuk akkor eri meg, ha a jovoben tobb ilyen fejlesztes is varhato, mert akkor csak egy vekony kliens reteget kellene java 1.3-mal a Notes ala fejlesztened a lenyegi reszt fejleszthetned Eclipse-ben korszeru eszkozokkel.