Web Services em Java com JAX-WS

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.

De que se trata o artigo:

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" [...] continue lendo...

Artigos relacionados