Expor Application Module como SOAP Web Service

Tweet about this on TwitterShare on Facebook7Share on LinkedIn7Share on Google+0

Como você sabe, a Arquitetura Orientada a Serviços (SOA) promove a reutilização, e às vezes você precisa expor alguns métodos dentro de sua aplicação ADF como serviços web. Desta forma, estes serviços web podem ser consumidos dentro de um BPEL Composite ou OSB Proxy Service. Utilizando o ADF Developer’s Guide documentation (15 Creating SOAP Web Services with Application Modules), vamos expor o módulo de aplicação como um SOAP Web Service.

Faça o download do aplicativo de exemplo: ADFAppModuleServiceApp.zip.

Configurando o Application Module

No seu projeto Model, clique duas vezes no Application Module.
No overview, clique na guia de navegação Web Service, em seguida, clique em Enable support for Service Interface (ícone mais verde).

expose-application-module-as-soap-web-service1

O assistente Create Service Interface é mostrado.
Na Etapa 1, você pode alterar o nome e o namespace de destino para o serviço web. A opção Generate Asynchronous Web Service Methods, expõe os métodos do Application Module como métodos de serviço assíncrono, permitindo ambas operações síncronas e assíncronas no serviço web.
Clique em Next.

expose-application-module-as-soap-web-service2

Na Etapa 2, você pode selecionar alguns métodos internos para expor.
Clique em Next.

expose-application-module-as-soap-web-service3

Na Etapa 3, se você tiver criado um método personalizado no Application Module e quer expô-lo, selecione-o aqui.
Clique em Next.

expose-application-module-as-soap-web-service4

Na Etapa 4, mova o EmployeesView1 para a caixa selecionada.
Ative as operações Criar e GetByKey e altere os nomes dos métodos para createEmployees e getEmployeeById.
Clique em Next.

expose-application-module-as-soap-web-service5

Clique em Finish para criar a interface do serviço.

expose-application-module-as-soap-web-service6

O JDeveloper gerou a classe de interface do serviço.

expose-application-module-as-soap-web-service7

Executar usando o Integrated WebLogic Server

No seu projeto Model, expanda o Application Module, expanda o nó serviceinterface, em seguida, selecione o arquivo da classe de implementação do serviço (AppModuleServiceImpl.java). Clique com o botão direito no arquivo da classe de implementação do serviço, e escolha Run.

expose-application-module-as-soap-web-service8

Implantar no Oracle WebLogic Server

Clique duas vezes no projeto Model para abrir o assistente Project Properties, selecione o nó Deployment e clique no ícone New Profile.
No assistente Create Deployment Profile, escolha Business Components Service Interface como o tipo de arquivo, altere o Deployment Profile Name para AppModuleServices e clique em OK duas vezes.

expose-application-module-as-soap-web-service9

No menu principal, escolha Application > Deploy > Model_AppModuleServices para abrir o assistente Deploy Model_AppModuleServices.
Na página Deployment Action, selecione Deploy to Application Server e clique em Next.
Na página Select Server, selecione a conexão do servidor de aplicativos e clique em Finish.

Testando o aplicativo Web Service

No menu principal, escolha Tools > HTTP Analyzer.
Na janela HTTP Analyzer, clique em Create New SOAP Request (ícone folha de papel).

expose-application-module-as-soap-web-service11

Vá para a janela WebLogic Server Log e copie o target URL.

expose-application-module-as-soap-web-service12

Clique no botão Select WSDL, cole o target URL adicionando ?WSDL no final e clique em OK.

http://<HOST>:<PORT>/ADFAppModuleServiceApp-Model-context-root/AppModuleService?WSDL

expose-application-module-as-soap-web-service13

Em Operations, escolha createEmployees, forneça valores para os argumentos de entrada e clique no botão Send Request para criar o empregado.

expose-application-module-as-soap-web-service14

Agora, escolha getEmployeeById, forneça valor para o argumento de entrada e clique no botão Send Request para obter o empregado por ID.

expose-application-module-as-soap-web-service15

Este é o resultado no banco de dados.

expose-application-module-as-soap-web-service16

Tweet about this on TwitterShare on Facebook7Share on LinkedIn7Share on Google+0

Autor: Waslley Souza

Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle WebCenter Portal, Oracle ADF e Java.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *