Imaginem uma aplicação para compor o custo de um veículo. Todos sabem que dentro de um veículo existem centenas de peças e essas peças podem ser compradas em diferentes países. Por exemplo, podemos comprar o motor 2.0 do veículo na Inglaterra, os pneus no Brasil, os vidros no Japão e etc. No final o preço do carro custa 2.000 libras + 500 reais + 300 ienes + etc ...
Como todos sabemos o ($) dollar americano é uma moeda de uso internacional, válida em qualquer lugar do mundo.
Na aplicação preciso converter todos os preços para a moeda dollar($), logo para composição do preço do meu carro terei que pesquisar a cotação atual das moeda em relação ao dollar e inserir manualmente cada valor, assim convergendo o preço para a moeda americana.
Para facilitar a vida do usuário, posso sugerir na aplicação o valor da cotação da moeda feita em tempo real. Como ? Utilizando um webservices.
Pesquisando na internet descobri um serviço que nos fornece esse serviço de câmbio, a descrição do serviço segue abaixo:
http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl?
Para que utiliza Java, mais especificamente a IDE eclipse, segue um simples tutorial
OBS: Você deve possuir no eclipse o plugin WTP que fornece suporte a web services.
http://www.eclipse.org/webtools/
1) Crie um projeto simples no Eclipse
2) Crie um Web Service Client
File --> New --> Others --> Web Services --> Web Service Client
3)Adicione o endereço do wsdl em Service Definition: http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl?
Clica em Ok.
Verifique se o eclipse gerou o pacote net.xmethods.www.sd.CurrencyExchangeService_wsdl
Com as classes:
CurrencyExchangeBindingStub
CurrencyExchangePortType
CurrencyExchangePortTypeProxy
CurrencyExchangeService
CurrencyExchangeServiceLocator
Como o eclipse gerou o stub, proxy, locator e interfaces de serviço, ficou bem fácil.
4) Crie um classe simples com um método main
public static void main(String[] args) throws ServiceException, RemoteException{
// instancia o service locator
CurrencyExchangeServiceLocator currencyExchangeServiceLocator = new CurrencyExchangeServiceLocator();
// pega a interface de servico
CurrencyExchangePortType portType = currencyExchangeServiceLocator.getCurrencyExchangePort();
// chama o serviço de conversão
System.out.println("Hoje o 1 dollar custa " + portType.getRate("united states", "brazil") + " reais");
System.out.println("Hoje o 1 euro custa " + portType.getRate("Euro", "brazil") + " reais");
}
Saída no console:
Hoje o 1 dollar custa 2.0401 reais
Hoje o 1 euro custa 2.778 reais
Com uma solução bem simples você consegue criar um cliente para um serviço que certamente irá agregar algum valor ao software.
Segue a lista de países que vc poderá utilizar a conversão das moedas:
afghanistan albania algeria andorra andorra angola argentina aruba australia austria
bahrain bangladesh barbados belgium belize bermuda bhutan bolivian botswana brazil
england united kingdom uk great britain brunei burundi cambodia canada cape verde
cayman islands chile china colombia comoros costa rica croatia cuba cyprus czech republic
denmark dijibouti dominican republic netherlands east caribbean ecuador egypt el salvador
estonia ethiopia euro falkland islands fiji finland france gambia germany ghana
gibraltar greece guatemala guinea guyana haiti honduras hong kong hungary iceland
india indonesia iraq ireland israel italy jamaica japan jordan kazakhstan kenya
korea kuwait laos latvia lebanon lesotho liberia libya lithuania luxembourg
macau macedonia malaga malawi kwacha malaysia maldives malta mauritania mauritius
mexico moldova mongolia morocco mozambique myanmar namibia nepal new Zealand nicaragua
nigeria north korea norway oman pakistan panama papua new guinea paraguay peru
philippines poland portugal qatar romania russia samoa sao tome saudi arabia seychelles
sierra leone singapore slovakia slovenia solomon islands somalia south africa spain
sri lanka st helena sudan suriname swaziland sweden switzerland syria taiwan tanzania
thailand tonga trinidad tunisia turkey united states us usa uae united arib emirates uganda
ukraine uzbekistan vanuatu venezuela vietnam yemen yugoslavua zambia zimbabwe