Pavel Zelenka wrote:
> 
> Potřeboval bych poradit s následující záležitostí.
> 
> Mám aplikaci, do které se mimo jiné zadává DIČ zákazníka. Na stránkách
> http://ec.europa.eu/taxation_customs/vies/vieshome.do je možné provést
> kontrolu správnosti/existence onoho DIČ. Tato služba je poskytována i
> jako SOAP service viz.
> http://ec.europa.eu/taxation_customs/vies/faqvies.do#item16 Bohužel jsem
> se SOAP neměl nic nikdy do činění, takže nevím jak začít.
> Velice bych ocenil, kdybyste mi s tímto poradili. Díky.

Vyberte si nějaký udělátor pro konverzi popisu SOAP služby
na java třídy, předhoďte mu URL s popisem služby, tj.
http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl
a vygenerovanou třídu prostě zavolejte.

Na výběr máte mnoho nástrojů, z open sourcových zkuste třeba
http://xfire.codehaus.org/
http://ws.apache.org/axis2/
http://ws.apache.org/axis/

Cosi je i přímo v JDK 6, viz
http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/
ale když jsem to zkoušel použít jako klienta k existující
službě, tak to moc nefungovalo.

Abych byl konkrétní, tak pokud si vyberete Axis 1, tak
nejdřív spustíte

$ java org.apache.axis.wsdl.WSDL2Java -v --output . 
http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl

Parsing XML file:  
http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl
Generating ./checkVat/services/vies/taxud/eu/europa/ec/CheckVatService.java
Generating 
./checkVat/services/vies/taxud/eu/europa/ec/CheckVatServiceLocator.java
Generating ./checkVat/services/vies/taxud/eu/europa/ec/CheckVatPortType.java
Generating 
./checkVat/services/vies/taxud/eu/europa/ec/CheckVatPortSoapBindingStub.java

Pak vyrobíte klienta:


import checkVat.services.vies.taxud.eu.europa.ec.*;
import javax.xml.rpc.holders.*;
import org.apache.axis.holders.*;

public class Klient {
 public static void main(String[] args) throws Exception {
   CheckVatPortType p = new CheckVatServiceLocator().getcheckVatPort();

   StringHolder countryCode = new StringHolder();
   StringHolder vatNumber= new StringHolder();

   countryCode.value = "CZ";
   vatNumber.value = "25525832";

   DateHolder requestDate = new DateHolder();
   BooleanHolder valid = new BooleanHolder();
   StringHolder name = new StringHolder();
   StringHolder address= new StringHolder();

   p.checkVat(countryCode,vatNumber,requestDate,valid,name,address);

   System.out.println("countryCode:"+countryCode.value);
   System.out.println("vatNumber:"+vatNumber.value);
   System.out.println("requestDate:"+requestDate.value);
   System.out.println("valid:"+valid.value);
   System.out.println("name:"+name.value);
   System.out.println("address:"+address.value);

 }
}

A spustíte:

$ java Klient
countryCode:CZ
vatNumber:25525832
requestDate:Mon Sep 10 00:00:00 CEST 2007
valid:true
name:Elektrika.cz spol. s r.o.
address:


Makub
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [EMAIL PROTECTED]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem