Nesse artigo vou mostrar como gerar um Webservice SOAP a partir de um arquivo WSDL com a biblioteca Apache CXF.
O CXF tem várias ferramentas, e uma delas é o WDLS to Java (wsdl2java). Com esse carinha podemos executar um comando e ler um WSDL gerando todas as classes Java necessárias.
O download pode ser feito em https://cxf.apache.org/download.html. Baixe o zip e descompacte-o no C:
Agora no Path nas variáveis de ambiente do Windows adicione
o caminho para a pasta bin da versão do CXF que baixou. Nesse caso, como usei a
3.1.4 ficaria:
C:\apache-cxf-3.1.4\bin
Isso permite usar a ferramenta em qualquer lugar pela
linha de comando.
O WSDL tem várias partes e pode ser usado tanto para gerar o servidor quanto o cliente. São elas:
1. Definições
(Definitions): Essa sessão é a raiz do documento WSDL e contém todas as
definições relacionadas ao serviço da Web. Ela define os namespaces utilizados,
bem como os tipos de dados e as mensagens que serão utilizadas.
2. Tipos (Types): Nesta sessão, são definidos os tipos de dados utilizados pelos serviços da Web. Geralmente, esses tipos são definidos usando XML Schema Definition, que especifica a estrutura e as restrições dos dados ficando em um arquivo separado (XSD). Nesse caso é importante ter acesso aos 2 arquivos. Quando isso ocorre, na sessão Types vai ter o endereço (schemaLocation) do XSD e pode ser necessário que você altere para o local onde colocou os arquivos.
3. Mensagens
(Messages): Aqui são definidas as mensagens utilizadas pelos serviços da Web.
Uma mensagem é uma unidade lógica de dados que é trocada entre o cliente e o
serviço. Cada mensagem é composta por partes, onde cada parte tem um nome e um
tipo associado.
4. Porta
(Port): Esta sessão define os pontos de extremidade (endpoints) disponíveis
para acessar os serviços da Web. Um ponto de extremidade é uma combinação de um
endereço de rede e um contrato, que define a interface para acessar o serviço.
5. Vinculação (Binding): Aqui são especificados os detalhes de vinculação para cada ponto de extremidade definido. A vinculação define como as mensagens serão transmitidas entre o cliente e o serviço, incluindo o protocolo de transporte utilizado (por exemplo, SOAP sobre HTTP) e os formatos de codificação de dados.
6. Serviço (Service): Nesta sessão, são definidos os serviços específicos oferecidos pelos pontos de extremidade. Ela especifica os detalhes do serviço, como o nome, a localização e as operações suportadas.
Uma vez com o CXF
configurado e o arquivo WSDL em mãos (e o XSD se for o caso), utilize o seguinte
comando para gerar as classes Java:
> wsdl2java -d
<diretório_destino> -p <pacote_base>
<caminho_para_arquivo_wsdl>
Substitua <diretório_destino> pelo diretório onde deseja que as classes Java sejam geradas, <pacote_base> pelo pacote base que você deseja para as classes geradas (tipo: com.examplo.webservice) e <caminho_para_arquivo_wsdl> pelo caminho completo do arquivo WSDL que você deseja usar.
As opções -server, -client
e -impl são usadas para gerar classes específicas relacionadas a
diferentes aspectos de um Webservice. Aqui está uma explicação de cada uma
dessas opções:
1. -server:
Essa opção é usada para gerar as classes do lado do servidor, ou seja, as
classes que implementam o serviço Web. Ao usar a opção -server, o wsdl2java
gerará classes que podem ser usadas para implementar as operações do serviço
definidas no WSDL. Essas classes geralmente contêm a lógica de negócios e a
implementação real dos métodos do serviço Web.
2. -client:
Essa opção é usada para gerar as classes do lado do cliente, ou seja, as
classes que são usadas para acessar e interagir com o serviço Web. Ao usar a
opção -client, o wsdl2java gerará classes que permitem ao cliente
chamar os métodos do serviço de forma conveniente. Essas classes geralmente
lidam com a comunicação de rede, envio e recebimento de mensagens SOAP, bem
como a tradução entre os objetos Java e o formato XML usado nas mensagens SOAP.
3. -impl: Essa opção é usada para gerar as classes de implementação do serviço. Ela é útil quando se deseja gerar somente as classes de implementação do serviço Web, sem as classes do lado do cliente ou do lado do servidor. Essas classes de implementação contêm a lógica de negócios e são responsáveis por processar as solicitações recebidas do lado do cliente e retornar as respostas correspondentes.
Pronto, com isso as classe
podem ser geradas da forma que atendam sua necessidade.
Fonte:
Nenhum comentário:
Postar um comentário