Este artigo trata da utilização da especificação JAX-WS 2.0 de forma prática, através da criação e consumo de web services, com o objetivo de demonstrar como podemos integrar sistemas independente de linguagem e plataforma.
Em que situação o tema útil:
A tecnologia de web services é útil para qualquer equipe de desenvolvimento que tenha como objetivo integrar aplicações, independente de plataforma, e promover o reuso de funcionalidades.
Resumo DevMan:
No cenário atual, é raro existir uma aplicação corporativa que possua uma interface apenas interna. É comum que aplicações deste tipo necessitem de integração com outros sistemas. Sendo assim, web services são uma excelente opção para promover esta integração.
Neste contexto, este artigo apresenta a utilização de web services através da especificação JAX-WS 2.0. Vamos aprender como criar e consumir um web service em Java fazendo uso desta especificação. Além disso, veremos como consumir o web service dos correios para cálculo de frete, desenvolvido na plataforma .NET.
Aplicações empresariais normalmente possuem ricos domínios que encapsulam complexas regras de negócio. Boa parte destas regras é representada sob a forma de serviços. Mas o que são estes serviços? Se fizermos uma análise apenas em um modelo de domínio (Domain Model), os serviços são classes que encapsulam funcionalidades oferecidas para outros objetos que vivem dentro da mesma aplicação. Por exemplo, em uma aplicação bancária, pode existir um serviço de domínio responsável por realizar transferências de valores entre objetos do tipo ContaCorrente.
Neste cenário, o serviço está restrito ao sistema em questão e pode ser acessado sem maiores problemas através de chamadas entre objetos presentes nas camadas da aplicação. Mas o que acontece se outros departamentos, da mesma empresa, estiverem interessados em reaproveitar o serviço de transferência no contexto de aplicações próprias? Ou seja, fazer uso de uma funcionalidade que se encontra fora das fronteiras de suas aplicações? Se estivermos falando apenas de sistemas desenvolvidos na plataforma Java, novamente, não teríamos muitos problemas. O serviço poderia ser disponibilizado na forma de um arquivo JAR, no classpath dos projetos clientes. Ou ainda, poderia ser permitido acesso remoto através de uma interface remota de um componente EJB. Sendo assim, onde está o problema?
O problema aparece quando o conceito de serviço transcende o domínio e a plataforma. Isto é, quando aplicações desenvolvidas por equipes distintas, em plataformas diferentes, precisam de alguma forma de integração. Por exemplo, um sistema criado em .NET querendo consumir o serviço de transferência de valores, feito na plataforma Java. Para permitir tal integração, podemos fazer uso de web services.
Web services são ideais para integração de sistemas, principalmente aqueles desenvolvidos com tecnologias heterogêneas, pois garantem independência de plataforma e linguagem. Isso se deve ao fato de se basearem na linguagem XML e no protocolo HTTP. A linguagem XML é amplamente difundida entre as diversas plataformas existentes no mercado. Portanto, é fácil trabalhar com este formato para efetuar trocas de mensagens entre diferentes aplicações. Além disso, o protocolo HTTP é o mais utilizado na web.
O objetivo deste artigo é mostrar como podemos utilizar a especificação JAX-WS 2.0 (Java API for XML Web Services) para a criação de Web Services na plataforma Java. Vamos trabalhar com o servidor de aplicações JBoss AS 6, a IDE Eclipse Helios com o plugin JBoss Tools habilitado e a ferramenta wsimport, que é parte integrante do JDK. Veremos ainda, como consumir um serviço de cálculo de frete, disponibilizado pelos correios e desenvolvido na plataforma .NET.
Instalando o JBoss Tools no Eclipse
Para trabalharmos de forma mais eficiente no Eclipse Helios com as versões mais recentes do JBoss AS (6 em diante), podemos fazer uso do plugin JBoss Tools. Uma das funções deste plugin é integrar a IDE com o servidor de aplicações, de forma a permitir o deploy de aplicações diretamente pelo Eclipse, além de controlar a inicialização do servidor. O plugin também provê facilidades para os desenvolvedores trabalharem com outras tecnologias relacionadas ao JBoss como: Hibernate, Seam, RichFaces, etc.
A instalação do JBoss Tools segue os passos descritos abaixo:
1. Com o Eclipse aberto, clique em Help > Eclipse Market Place...;
2. No campo de busca, digite “jboss tools” e clique em Go;
3. Uma lista de resultados será apresentada;
4.
Clique
no botão Install ...