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ő?
- 4557 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
Ó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.)
- A hozzászóláshoz be kell jelentkezni
Itt megtalálható, hogy melyik tagország adatbázisa mikor érhető el: http://ec.europa.eu/taxation_customs/vies/viesspec.do
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Szerintem pont, hogy nem multi line, hanem single line kell neked. Lasd javadoc. Ha jol emlekszem az apache regexp library volt az alapja a jdk-s valtozatnak. Ott ezt atneveztek DOTALL-ra.
"apache-cxf [...] -- miután sikerült lefordítani"
Miert kellett leforditani?
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Szerencsére várhatóan nem lesz ilyen a következő években, hacsak a fényestekintetű EU vagy APEH ki nem talál valami hasonló mást.
- A hozzászóláshoz be kell jelentkezni