A Arquitetura Orientada à Serviços (SOA), é um dos assuntos mais discutidos entre os programadores, e tem seus diversos benefícios, entre eles a interoperabilidade, que é a capacidade de rodar seus serviços em qualquer plataforma ou linguagem.
Hoje vou mostrar como montar um serviço (Web Service) em Asp.Net, e cosumir o mesmo através da Linguagem Java.
Web Service Asp.Net
Primeiro criamos um projeto no Visual Studio, no meu caso utilizo o VS2010, vá em
File->New->Project , na janela Wizard que abrir procure pela aba
WEB e selecione
ASP.NET Web Service Application:
Após a tela o wizard do Visual Studio vai gerar um serviço HelloWorld, no meu caso alterei para um Serviço que irá devolver um Objeto Livro, implementei a classe Livro dentro da própria classe do Web Service, como segue o código abaixo:
namespace MeuServico
{
///
/// Summary description for Service1
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
public class Livro
{
public int Id { get; set; }
public string Nome { get; set; }
public string Autor { get; set; }
public string AnoDePublicacao { get; set; }
public string Editora { get; set; }
public int NumeroDePaginas { get; set; }
public bool ColocarNaEstante(Livro livro)
{
try
{
return true;
}
catch (Exception e)
{
throw e;
}
}
}
[WebMethod]
public Livro getLivro(int Id)
{
Livro livro = new Livro()
{
Id = 1,
Nome = "Quimica Geral",
Autor = "Cat Stevens",
AnoDePublicacao = "2006",
Editora = "Novembro",
NumeroDePaginas = 343
};
return livro;
}
}
}
Feito isso é só rodar a aplicação que vamos ter nosso serviço rodando.
Cliente Java
Já temos o serviço rodando no Visual Studio agora vamos implementar um cliente Java para consumir esse serviço, para isso abra o NetBeans IDE, e contrua um projeto Java Application com o Nome ClientJava, na aba Projects clique com o botão direito, vá em
New->Others e procure por
Web Service Client, uma janela similar a esta se abrirá:
Pegue o endereço de EndPoint do serviço Asp.Net e coloque no campo WSDL URL, no meu caso esse endereço é
http://localhost:6566/Service1.asmx (O endereço que aparece no Browser quando você roda o serviço no Visual Studio), selecione o package no qual será implementado o client e então clique em
Finish, na classe Main do projeto, clique com o botão direito na definição da função main e procuro por
Web Service Client Resources-> Call Web Service Operation, a tela abaixo se abrirá:
Selecione o método getLivro e clique em OKo código gerado será semelhante a este:
Agora rode o projeto Java e seu serviço am Asp.Net, já está sendo consumido em Java. Essa interoperabilidade é incrivel não é?.