Realizando um teste básico

O Axis aceita que um Web Service seja chamado via uma requisição HTTP-GET. Portanto, ao digitar um endereço é possível testar o web service. No exemplo deste artigo o endereço é este: http://localhost:8080/axis/Servico.jws?method=soma&valor1=2&valor2=4 .

Como pode-se notar, o endereço é a junção de um namespace, que é o endereço do WebService representado por http://localhost:8080/axis/Servico.jws , a variável method que, como seu nome diz, contém o nome do método que se deseja executar, e uma sequência dos parâmetros deste método. Lembrando que o nome dos parâmetros deve ser o mesmo definido na função da classe.

O resultado da execução é um documento XML com a resposta 6 . Novamente, dependendo do browser não será visivel as tags XML. O XML que retornou na execução está abaixo:

<?xml version=”1.0″ encoding=”UTF-8″?>
<soapenv:Envelope
      xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”
      xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
      xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<soapenv:Body>
<somaResponse soapenv:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
<somaReturn xsi:type=”xsd:int”>6</somaReturn>
</somaResponse>
</soapenv:Body>
</soapenv:Envelope>

Criando um cliente em Java para acessar o Servidor

O cliente também é uma classe simples, mas exige conhecimento em algumas classes não tão comuns no dia-a-dia.

As classes Service e Call são classes do Axis , portanto, para compilar e executar esta classe é necessário que todo o diretório lib, encontrado dentro do zip do Axis esteja no CLASSPATH da aplicação.

Visto este detalhe, abaixo encontra-se o arquivo fonte do cliente de Web Service. Esta classe fará a conexão ao Web Service para somar 2 com 4 e irá apresentar o resultado 6 na saída padrão.

import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class Cliente {
     public static void main(String[] args) throws Exception {
          // Endereço, local onde encontra-se o Web Service
          String local = “http://localhost:8080/axis/Servico.jws”;
         // Criando e configurando o serviço
          Call call = (Call) new Service().createCall();
         // Configurando o endereço.
          call.setTargetEndpointAddress(local);
          // Marcando o método a ser chamado.
          call.setOperationName(“soma”);
          // Parâmetros da função soma.
          Object[] param = new Object[]{new Integer(2),new Integer(4)};
         // Retorno da Função
          Integer ret = (Integer)call.invoke(param);
         // Imprime o resultado: ret = 2 + 4.
          System.out.println(“Resultado da soma : “ + ret);
     }
}

Este código está dentro de um arquivo chamado Cliente.java, após compilar e executar esta classe exibirá o resultado ” Resultado da soma: 6 “ como desejado.

O framework do Axis trata a primitiva int e a classe wrapper Integer como sendo iguais. Portanto, tanto faz usar uma ou outra. Neste exemplo, foi criado o Web Service com dois parâmetros int e aqui no cliente estamos usando dois parâmetros Integer .

Como pode-se notar, o framework do Axis abstrai qualquer trabalho com XML, evitando que o desenvolvedor necessite conhecer a sintaxe do XML do SOAP.

 

E com isso, chegamos ao fim deste tutorial, boa sorte no desenvolvimento do seu webservice!