Vamos começar pelas definições básicas.
O Que é um Web Service?
Um Web Service pode ser encarado como um software criado para suportar interações entre duas máquinas em uma rede. Frequentemente é utilizado como uma API que é executada em um sistema remoto e devolve uma resposta para quem o chamou.
Algumas especificações que utilizaremos
SOAP (Simple Object Access Protocol) – É o envelope das mensagens com regras de codificação, que realiza “bindings” com protocolos subjacentes.
WSLD (Web Services Description Language) - Um formato XML que permite descrever a interface de um Web Service com detalhes sobre os “bindings” para protocolos específicos. É geralmente utilizado para gerar o código do servidor, do cliente e para configurações. (No nosso caso vamos gerar o WSDL apartir de uma classe, e utilizaremos o WSDL para gerar o código cliente)
Jax-RPC (Java™ API for XML-based RPC) – É uma especificação que descreve APIs e convenções para a construção de Web Services e clientes que usam chamadas a procedimentos remotos (RPC) e XML. Ela padroniza os mapeamentos do Java para WSDL e do WSDL para o Java, além de fornecer as APIs de desenvolvimento.
Agora que já temos uma base sobre o que é um Web Service (que pode ser ampliada com uma pequena busca no Google), vamos ao objetivo deste artigo: Criar um Web Service com JDeveloper.
Por que JDeveloper?
Pelo simples fato de que ele simplifica o processo, nos permitindo criar Web Services e clientes em poucos minutos.
Criando o Web Service:
Para criar o Web Service, vamos definir uma classe principal que conterá os métodos que chamaremos remotamente mais tarde (é como uma interface para acesso aos métodos reais, onde a lógica estaria implementada).
Criamos então uma aplicação e um projeto, ambos nomeados como “Webservice” e em seguida definimos a classe “PrincipalWebservice”:
package webservice;
public class PrincipalWebservice {
public PrincipalWebservice() {
}
public String getHello(String nome){
return "Hello! " + nome;
}
}
Chegamos a um dos pontos cruciais do desenvolvimento, a criação do WebService. Para tanto basta clicar com o botão direito no projeto e selecionar New … -> Business Tier -> Web Services -> Java Web Service.
No Wizard que aparece, especifique a nossa classe no campo Component to Publish. Você será questionado sobre qual version de Web Service você quer utilizar, escolha a opção J2EE 1.4 (JAX-RPC) Web Service.
Neste ponto basta clicar em Next até que a tela de seleção de métodos a expor apareça, nesta tela selecione o método getHello que criamos. Informe que deseja rodar a aplicação no servidor da IDE (Embedded OC4J) e clique em Finalizar.
Será então criada toda a estrutura necessária para compor nosso Web Service, e o WSDL gerado irá aparecer na tela. Além dos mapeamentos existentes no arquivo, algo muito importante está no final do código:
<service name="MyWebService1">
<port name="MyWebService1SoapHttpPort" binding="tns:MyWebService1SoapHttp">
<soap:address location="http://127.0.1.1:8888/Webservice-Webservice-context-root/MyWebService1SoapHttpPort"/>
</port>
</service>
Este endereço será utilizado para a criação do proxy, cliente que acessará nosso Web Service. (No nosso caso estamos utilizando o servidor da IDE, então o endereço que vamos utilizar será o informado pela IDE quando mandar-mos rodar nosso Web Service)
Nosso Web Service está pronto, basta clicar com o botão direito em MyWebService1->Run.
No próximo artigo estarei descrevendo a criação de um Web Proxy para nosso Web Service, este realizará a comunicação com o Web Service para o nosso cliente.
Até a próxima!