Você está na página 1de 18

UNIVERSIDADE CATÓLICA DE ANGOLA

FACULDADE DE ENGENHARIA
DEPARTAMENTO DE INFORMÁTICA

TUTORIAL SOBRE A IMPLEMENTAÇÃO DO SOAP

Autor: Herman Diyabanza(HD)


ID: 1000016231
Orientador: Prof. Dr. Aires Veloso

Luanda - 2021
ÍNDICE

INTRODUÇÃO 3
1. CARACTERÍSTICA DO SOAP 4
2. IMPLEMENTAÇÃO DO SOAP 5
2.1 Criando o projecto simples para o Servidor SOAP 6
2.2 Criando o projecto para o Cliente SOAP 10
2.3 Criando o projecto com acesso a DB para o Servidor SOAP 13
CONSIDERAÇÕES FINAIS 17
REFERÊNCIAS 18

2
INTRODUÇÃO

Web Services são tecnologias que permitem a comunicação entre


aplicações de uma maneira independente de sistema operacional e/ou de
linguagem de programação.
Componentes que permitem aplicações enviar e receber dados
geralmente em formatos XML. Cada aplicação pode ter a sua própria
“linguagem” que é traduzida para uma linguagem universal o formato XML.
Os Web Services podem ser baseados no protocolo SOAP ou no estilo
REST (chamados de RESTful). Ambos funcionam sob o protocolo HTTP, que
é o protocolo padrão de transferência de documentos na Web.
Para o presente tutorial iremos mostrar o passo-a-passo para a
implementação do SOAP na linguagem Java.

3
1. CARACTERÍSTICA DO SOAP

O protocolo SOAP, abreviação para Simple Object Access Protocol, é


uma especificação para a troca de informação entre sistemas, ou seja, uma
especificação de formato de dados para envio de estruturas de dados entre
serviços, com um padrão para permitir a interoperabilidade entre eles.

Seu design parte do princípio da utilização de XMLs para a transferência


de objetos entre aplicações, e a utilização, como transporte, do protocolo de
rede HTTP. Além do formato dos objetos, nesse protocolo também são
definidos os padrões que os serviços SOAP devem seguir, ou seja, a
especificação dos endpoints que as implementações de SOAP devem ter.

No mundo dos Web services, esse XML é chamado de WSDL (Web


Service Description Language), que é um formato de mensagem que
descreve os detalhes técnicos de como implementar um web service, como a
URI, a porta, as assinaturas dos métodos e tipos de dados.
Na estrutura de uma mensagem SOAP, o elemento principal é o
envelope, que dentre outras coisas define os tipos de dados do documento.
Também há um elemento Header e um elemento Body que contém as
informações sobre chamadas, respostas, erros e status. Na primeira
chamada feita ao Web Service, o servidor recebe o WSDL para que o cliente
saiba como deve invocar os métodos do servidor. Em seguida, o cliente
invoca o método desejado e o servidor envia o Envelope.

4
Atualmente, os Web Services Java são construídos com anotações com
base na especificação JAX-WS (Java API for XML Web Services), o que
simplifica bastante a vida dos desenvolvedores. É importante lembrar que
tanto os Web Services SOAP quanto os Web Services REST podem ser
construídos seguindo o padrão JAX-WS embora seja mais comum
desenvolver o estilo REST seguindo o padrão JAX-RS.

As vantagens dos Web Services SOAP são a segurança e a


independência de plataforma e linguagem. Uma desvantagem é a
dependência do WSDL, que é o único mecanismo disponível para descobrir
os serviços disponíveis no lado do servidor. Outra desvantagem é a lentidão,
pois ele depende da troca de arquivos XML e do parse desses.

2. IMPLEMENTAÇÃO DO SOAP

Ferramentas usadas
● Sistema operativo: Linux/Distribuição Ubuntu (Versão 21)
● Java: OpenJDK 8
● IDE: Apache Netbeans 12.4
● Container(Servidor): Wildfly-20.0.1.Final
● Gestor de pacotes: apache-maven-3.8.1
● Java Enterprise Edition (EE): Java EE 7 Web

5
2.1 Criando o projecto simples para o Servidor SOAP
Criar o projecto Web Maven para o Servidor SOAP
Numa primeira fase do nosso projecto demonstrativo iremos implementar
o SOAP para realizar as operações aritméticas (adição, subtração, divisão
e multiplicação)
Em Java, os serviços Web são definidos por classes. Um Web Service
pode oferecer várias operações e cada uma delas representada pelo seu
respectivo método de classe.
Uma prática muito importante de ser seguida é sempre dividirmos a
interface de um serviço da sua implementação. A interface de um serviço é
chamada de SEI (Service Endpoint Interface) e a implementação é chamada
de SIB (Service Implementation Bean).

Criar a interface bem e os respectivos métodos abstactos

A anotação @Web Service avisa ao compilador Java que o arquivo atual


corresponde à definição SEI de um serviço Web enquanto o @WebMethod
indica que um determinado método corresponde a uma operação de serviço
e assim pode ser invocado por um cliente.

6
Criar a implementação da interface
Aqui será criada a nossa SEI onde serão implementados os métodos
definidos anteriormente.

A figura acima nada mais é a implementação de uma classe como outra


qualquer com os métodos da interface descritos e implementados. No
entanto, neste código temos uma novidade, a
propriedade endpointInterface dentro da anotação @Web Service. Essa
propriedade faz com que a classe atual, a SIB, ligue-se com a SEI
especificada anteriormente (edu.ucan.soapserver.ws.CalculadoraWS).

Compilação do projecto

É aconselhável, antes de compilar o projecto, inicializar o container (Wildfly


para o nosso caso).

Clean and build

Aqui o Maven aproveita baixar as possíveis dependências do projecto por


isso é recomendável numa primeira fase ter uma ligação a internet.

Fazendo o deploy do serviço

Basta fazer o run que o NetBeans vai fazer o deploy do projecto

7
Publicando o Serviço

Depois de fazer o deploy será necessário publicar o serviço anteriormente


implementado usando Endpoint para que o mesmo sejá acessível pelos
clientes.

Para o efeito, iremos criar a classe Publisher na qual iremos o referido


serviço e iremos reaproveitar a mesma classe para publicarmos os outros
serviços a serem implementados futuramente.

Usou-se da classe Endpoint parar permitir que se publique o serviço no


servidor. Para que possamos usá-la deve-se passar como parâmetro o
endereço do servidor e a instância do SIB do serviço a ser publicado.
Notamos que o serviço é publicado na porta 9876.
Depois disto é só fazer o deploy do projecto que será publicado pelo servidor
. Para confirmar o tal facto, basta ir na consola de administração do wildfly -
>Runtime -> Web Services conforme ilustra a imagem abaixo.

8
Para verificarmos se tudo foi publicado corretamente basta clicar no link da
WSDL e se tudo ocorrer perfeitamente poderemos visualizar o WSDL do
serviço publicado(imagem abaixo). Com isso estamos prontos para usar o
serviço.

9
2.2 Criando o projecto para o Cliente SOAP
Usando o serviço
Agora que o serviço está publicado, executado e pronto para ser usado,
vamos criar um cliente que vai aceder o Web Service criado anteriormente.
Para o efeito iremos utilizar a ferramenta do NetBeans.
- Dentro do projecto clicar em new e depois Web Service Client.
- Informar a WSDL URL que é a URL do serviço publicado que no nosso caso
é http://localhost:8080/SOAPServer-1.0-
SNAPSHOT/CalculadoraImpl?wsdl. De lembrar que para confirmar a URL
basta executarmos os passos descritos na página 10.

E para verificar que o cliente SOAP foi implementado com sucesso as


classes serão geradas automaticamente usando JAX-WS:wsimport de acordo
com a imagem abaixo:

10
Criar uma página JSF para testar o serviço
Vamos criar um formulário simples que possui dois campos de texto e o
botão que irá invocar o managed bean.

Criar o managed bean


Será criado para a invocação das operações do serviço SOAP anteriormente
criado e publicado. A referida invocação será feita dentro do método
testeCalculadoraWS().
Clique direito e escolher a opção Insert code (ou alt + insert), depois call
Web Service Operation e finalmente escolher a operação desejada.

11
Fazendo algumas adaptações e devidas correções o código irá ficar da
seguinte forma:

E finalmente podemos testar o serviço e a invocação da operação conforme


as imagens abaixo.

12
2.3 Criando o projecto com acesso a DB para o Servidor SOAP

No mesmo projecto (SOAPServer) iremos implementar o SOAP para


realizar algumas operações com acesso a base de dados;

Preparando a base de dados e datasource


A base de dados usado a título de exemplo foi a localidades_db contendo a
tabela localidade conforme o script abaixo.

Popular a tabela com dados para fins de teste


Criar a datasource no Wildfly
Designação: localidades_ds

13
Adicionar uma a entidade a partir da base de dados

Editar o ficheiro persistence.xml fazendo as seguintes alterações:


- transaction-type="JTA"
- acrescentar o seguinte dentro da tag <persistence-unit>
<jta-data-source>localidades_ds</jta-data-source>(linha 4)

E o ficheiro ficará da seguinte forma:

Criar as sessions beans (facades)


Implementar os métodos para aceder a base de dados

14
Criar a interface (Web Service) com os métodos necessários

Criar a implementação do Web Service (interface)

Publicar o seviço
Usando a classe Publisher (Já implementada)

15
Usando o serviço no cliente

Mencionando sempre a URL do WSDL


Invocando as operações no Web Service
A partir do managed bean (IndexBean)

16
CONSIDERAÇÕES FINAIS

A utilização do SOAP e dos Web services de modo geral traz vários registos
anto a nível tecnológico, como a nível do negócio destacando os seguintes:
 Integração de informação e sistemas: uma vez que o funcionamento
do Web service necessita apenas de tecnologia XML/JSON e
protocolos HTTP, a comunicação entre sistemas e aplicações é
bastante simplificada. Com um Web service é possível trocar
informação entre dois sistemas, sem necessidade de recolher
informação detalhada sobre o funcionamento de cada sistema. Os
Web services permitem ligar qualquer tipo de sistema,
independentemente das plataformas (Windows, Linux, entre outras) e
linguagens de programação (Java, Perl, Python, etc.) utilizadas.

 Reutilização de código: um Web service pode ser utilizado por várias


plataformas com diferentes objetivos de negócio. O código do Web
service é feito uma vez e pode ser utilizado vezes sem conta por
diferentes aplicações.

 Redução do tempo de desenvolvimento: é mais rápido desenvolver


com Web services, porque os sistemas não são totalmente
construídos a partir do zero e facilmente são incluídas novas
funcionalidades. O tempo de implementação de sistemas com a
utilização de Web services é mais reduzido, sendo uma boa opção no
desenvolvimento de software à medida.

 Maior segurança: O Web service evita que se comunique diretamente


com a base de dados. Assim, a segurança do sistema que fornece os
dados está salvaguardada.

 Redução de custos: Com a utilização de Web services não é


necessário criar aplicações à medida para a integração de dados, algo
que pode ser bastante caro. Os Web services tiram partido de
protocolos e da infraestrutura Web já existente na organização,
requerendo por isso pouco investimento.

17
REFERÊNCIAS

Michał Ćmil, Michał Matłoka, Francesco Marchioni, Java EE 7 Development


with WildFly, Packt Publishing, 2014.

Hélder da Rocha, Programação de aplicações Java EE usando Glassfish


e WildFly, argonavis, 2016.

DevMedia, Desenvolvendo e usando Web Services em java -


https://www.devmedia.com.br/desenvolvendo-e-usando-web-services-
em-java/37261

18

Você também pode gostar