Lendo arquivos de um diretório com File Adapter

Um dos recursos interessantes é a possibilidade de monitorar o sistema de arquivos pela chegada de novos arquivos e poder processá-los de acordo. A versão nova do File Adapter que vem junto com o Oracle Soa Suite possui esse recurso. Nesse exemplo, vamos criar um projeto que lê os arquivos de um diretório, processa e move para uma pasta.

O primeiro passo é criar um projeto SOA e arrastar o File Adapter para o composite.xml. Na tela de configuração do File Adapter, clique em Next. Dê um nome para o File Adapter e clique em Next. Na próxima tela, deixe marcado para definir o WSDL posteriormente e clique em Next. Escolha a opção Read file, deixa as opções padrões e clique em Next. Especifique os diretório de leitura e marque as opções: "Process files recursively", "Archive processed files (especifique um diretório)" e "Delete files after successful retrieval".

File Adapter Configuration Wizard
File Adapter Configuration Wizard

Clique em Next. Especifique quais arquivos serão processados, se quiser processar todos os arquivos inclusos na pasta coloque "*". Clique em Next. Especifique o tempo de verificação se foram inclusos novos arquivos no diretório e clique em Next. Na próxima tela, especifique o formato alvo. Para fazer essa etapa corretamente, leia o post sobre formatos de arquivo com File Adapter. Clique em Next e Finish.

Você irá verificar que o File Adapter foi criado do lado esquerdo do composite.xml. Isso ocorre porque é uma conexão "inbound", ou seja, o File Adapter que irá invocar um serviço. Essa operação irá ocorrer assim que um arquivo for inserido na pasta especificada anteriormente e o tempo de pooling tiver ocorrido. Agora é só criar um serviço para ser invocado à partir do File Adapter.

Arraste um BPEL para o composite.xml, especifique um nome e no combobox de template, selecione a opção "Base on a WSDL". Em WSDL URL selecione o WSDL do File Adapter criado e clique em OK.

No composite.xml você deverá dois WSDLs definidos como Exposed Services, conecte o que está faltando para o BPEL criado. Edite o BPEL para a sua necessidade. Como você poderá observar, o BPEL será One-way, já que o File Adapter não espera retorno.

BPEL
BPEL

Faça o deploy da aplicação e insira um arquivo na pasta alvo. A invocação do BPEL será automática. Você pode monitorar o processamento de arquivos no Enterprise Manager.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6