Trabalhando com FileAdapter no BPEL – Parte 1: Lendo o arquivo de um diretório

Por Uanderson Carvalho
Postado em Março 2016

Nesta primeira parte quero demonstrar como faremos para ler um arquivo de um diretório com o FileAdapter do BPEL, posteriormente irei abordar o máximo possível deste maravilhoso componente para manipulação de arquivos.

Para termos um exemplo o mais pratico possível, resolvi criar um Post por parte e cada parte será a evolução da anterior, por isso caso você queira acompanhar e fazer a aplicação inteira é muito importante que você faça ou acompanhe a partir da primeira parte.

Veja abaixo o que irei demonstrar nos próximos Posts sobre o FileAdapter:

Vamos começar!:

Primeiro, crie um novo Projeto ainda vazio com o nome FileAdapterBPEL conforme abaixo:

Arraste um componente File Adapter para Exposed Services e coloque o nome CapturaArquivo e clique em Next

Na opção abaixo, deixe marcado a opção Define from operation and schema (specified later) e clique em Next

Abaixo marque a opção Read File e selecione a opção Do not read file content e clique em Next

Agora, marque a opção Logical Name e em Directory for Incoming Files coloque o nome FILE_IN

Obs: Para que você entenda, posteriormente iremos definir o diretório onde estará o arquivo e passaremos para o File Adapter através desta variável FILE_IN

Deixe marcado a opção Process files recursively e as demais desmarcadas e clique em Next

Deixe marcada a opção File Wildcards e em Include Files with Name Pattern coloque o nome arquivo.txt e clique em Next

Abaixo vou definir para que o nosso diretório seja lido em uma frequência de 5 em 5 segundos, então clique em Next

Obs: Aqui é interessante você entender que nosso File Adapter irá ler o conteúdo da pasta que iremos definir posteriormente a cada 5 segundos, ou seja, não irá ler o mesmo arquivo novamente a não ser que ele seja alterado ou que coloquemos um novo arquivo.

Na próxima tela clique em Finish

Feito isso, você terá um processo conforme abaixo:

Agora clique com o botão direito no seu composite.xml e clique em Generate Config Plan

Clique em OK

Abra seu arquivo FileAdapterBPEL_cfgplan.xml e procure pela tag <service name=”CapturaArquivo”> e abaixo, em <replace> coloque /home/uans/Arquivos (ou conforme você queira mas lembre-se de criar esta sequência de diretórios em seu home com as permissões necessárias)

<service name=”CapturaArquivo”>
    <property name=”FILE_IN”>
    <replace> /home/uans/Arquivos </replace>
    </property>
    <binding type=”jca”/>
    </service>

Salve o arquivo e vamos agora fazer o deploy do seu projeto mas apontando para este diretório usando seu Config Plan.

Com o botão direito em cima do seu projeto clique em Deploy >> FileAdapterBPEL

Clique em Next

Na tela abaixo, clique no sinal de + ao lado de SOA Configuration Plan e selecione a opção FileAdapterBPEL_cfgplan.xml e abaixo marque a opção Overwrite any existing composites with the same revision ID e desmarque a opção Keep running instances on after redeployment e clique em Next

Marque a opção localhost e clique em Next

Clique em Next novamente

Clique em Finish

Na aba Deployment aguarde até que seu deploy tenha a mensagem

—-  Deployment finished.  —-

Agora antes de entrarmos no diretório e criarmos um arquivo.txt, vamos primeiro habilitar o trace e você verá que será criada uma instância ao colocarmos o arquivo.

No seu Browser vá no endereço http://localhost:10000/em

Obs: A porta 10000 é o numero que escolhi ao criar o meu Domínio.

Clique no seu projeto: FileAdapterBEL[1.0]

Clique em Settings >> Composite Audit Level e clique em Development, posteriormente clique Yes

Agora vá no diretório /home/uans/Arquivos e crie um arquivo chamado arquivo.txt

Volte no EM (http://localhost:10000/em) e veja que uma instância foi criada, veja também que ele estará com status Running.

No próximo Post iremos inserir informações dentro deste arquivo.txt e iremos ler o conteúdo deste arquivo.

Faça download deste Projeto.

Uanderson Carvalho é um Especialista Oracle SOA com foco em integração entre sistemas legado utilizando as tecnologias Oracle Fusion Middleware e SOA, Pós-graduado em Administração de Banco de Dados Oracle. Certificado pela Oracle como: Oracle SOA Suite 11g Certified Implementation Specialist.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.