Tags
11G, artefatos, Business, Deploy, Deployment, Developer, DVM, Fault Policies, JDeveloper, MDS, Meta Data Store, Oracle, oramds, Rules, Scripts, SOA, SOA Suite 11g, Soa-Suite, WSDL, XML, XSD
No SOA Suite 11g existe uma opção muito usada para compartilhar artefatos (WSDL, XML, XSD, DVM, Rules, Scripts, Fault Policies, entre outros… ) através do MDS – Meta Data Store facilitando a reutilização destes artefatos dentro dos projetos SOA
Vou lhe ajudar neste Post a criar e configurar o MDS no Jdeveloper. Minha configuração e utilização do MDS em 3 partes conforme abaixo. Posteriormente você poderá clicar nos links para consultar as demais partes.
- Parte 1: Criando e Configurando MDS
- Parte 2: Referenciando Projetos já existentes para o MDS
- Parte 3: Compartilhando o MDS entre outros Servidores
Quando, por exemplo, um projeto BPEL ou BPM é implementado (deploy) os seus arquivos são armazenados no MDS e qualquer alteração em algum artefato será refletida apenas no MDS sendo necessário apenas realizar o deploy apenas deste arquivo e não de um projeto inteiro.
Uma vez que o MDS esteja configurado e com o conteúdo armazenado, a referenciação dentro do projeto é bastante simples, bastando informar, na localização, o caminho completo dentro do MDS e incluindo o prefixo oramds. Veja no exemplo:
Para referenciar o XSD que está no caminho apps/MyCannonical: oramds:/apps/MyCannonical.xsd
Vamos começar 🙂
Clique em File >> New
Será aberto uma tela como abaixo:
Em seguida selecione Generic Project
Em Project Name coloque Artefatos e clique em Finish
Agora com o botão direito do mouse em cima do projeto Artefatos e clique em New
Clique em Folder e em seguida OK
Criarei a primeira pasta “apps”
Veja abaixo a primeira pasta “apps” criada
Obs: A pasta Resources e o arquivo readme.txt são criados automaticamente.
Repita este mesmo procedimento criando as pastas “wsdl” e “xsd” dentro da pasta “apps”, para que fiquem conforme abaixo:
Agora será necessário configurarmos o arquivo adf-config.xml para que os objetos (wsdl, xsd e etc..) criados no projeto Artefatos possam ser compartilhados com os demais projetos.
Para editar o arquivo adf-config.xml clique em Application Resources no seu Jdeveloper, vá em Descriptors >> ADF META-INF >> adf-config.xml e abra o arquivo.
Obs: O arquivo adf-config.xml é único por aplication
Localize a seguinte parte do seu arquivo:
<metadata-namespaces>
<namespace path=”/soa/shared” metadata-store-usage=”mstore-usage_1″/>
</metadata-namespaces>
Vamos agora acrescentar mais uma linha nessa parte do arquivo que deverá ficar assim:
<metadata-namespaces>
<namespace path=”/soa/shared” metadata-store-usage=”mstore-usage_1″/> <namespace path=”/apps” metadata-store-usage=”mstore-usage_2″/>
</metadata-namespaces>
Obs: Veja abaixo que acrescentamos mais uma linha do prefixo <namespace …> que deverá usar o codnome mstore-usage_2
Agora bem abaixo dessa parte do XML localize a tag <metadata-store-usages>
<metadata-store-usages>
<metadata-store-usage id=”mstore-usage_1″>
<metadata-store class-name=”oracle.mds.persistence.stores.file.FileMetadataStore”>
<property name=”metadata-path”
value=”${oracle.home}/integration”/>
<property name=”partition-name” value=”seed”/>
</metadata-store>
</metadata-store-usage>
Vamos agora acrescentar a outra parte do XML que também irá referenciar nosso artefatos que deverá ficar assim:
Obs: Veja abaixo que criamos mais uma estrutura da parte do XML <metadata-store-usage> com alguns elementos a mais, observe também que essa tag deverá ficar entre <metadata-store-usages> –veja o S no final do usage.
<metadata-store-usage id=”mstore-usage_2″ default-cust-store=”true” deploy-target=”true”>
<metadata-store class-name=”oracle.mds.persistence.stores.file.FileMetadataStore”>
<property value=”${user.home}/jdeveloper/mywork/BKP/UansBlogApplication”
name=”metadata-path”/>
<property value=”Artefatos” name=”partition-name”/>
<property name=”repository-name” value=”mds-soa”/>
</metadata-store>
</metadata-store-usage>
Obs: Caso você esteja fazendo também este procedimento, sugiro copiar o conteúdo acima e mudar apenas o caminho que está entre a tag <property… que é o caminho onde deverá estar sua aplicação, no meu caso está em /jdeveloper/mywork/BKP/UansBlogApplication,
${user.home} é uma váriavel que irá identificar qual é o seu home. no meu caso (/home/uans)
Muita atenção neste caminho para que ele esteja correto ou não irá funcionar
Para que você tenha uma refencia correta do caminho, vá no seu no seu application e procure o arquivo com extenção .jws conforme abaixo, pois este será o caminho correto:
Veja abaixo que não preciso colocar a parte /home/uans que já esta sendo refenciada pela variável ${user.home} conforme expliquei acima, então o caminho ficará assim:
- <property value=”${user.home}/jdeveloper/mywork/BKP/UansBlogApplication”
Obs: veja que está sem / no final
Feche o seu Jdeveloper e abra novamente para que suas alterações façam efeito.
Até aqui tudo OK, você já poderá usar a referencia oramds: para referenciar seus WSDL e XSD…
Por exemplo: oramds:/apps/wsdl/SeuContrato.wsdl
Agora, com o botão direito do mouse clique em Artefatos e clique em Project Properties…
Clique em Deployment e depois em New
Na tela abaixo coloque o nome commons e clique em OK
Obs: Pode ser qualquer outro nome
Na tela abaixo clique em Contributors e posteriormente em Add… para indicarmos onde esta a pasta app que criamos em nosso projeto
No meu caso está em: /home/uans/jdeveloper/mywork/BKP/UansBlogApplication/Artefatos/apps
Agora clique em Filters e ao lado direito, marque as pastas que deverão ser compartilhadas, no meu caso WSDL e XSD, em seguida clique em OK
Na tela abaixo clique em OK novamente.
Agora clique com o botão direito diretamente no seu application, no meu caso em UansBlogApplication e clique em Application Properties…
Clique em Deployment e ao lado direito em New…
Obs: Aqui vamos criar um deployment do tipo Soa Bundle, por isso daremos o nome soabundle
Então em Archive Type coloque a opção SOA Bundle
Em Name: coloque soabundle e clique em OK
Agora clique em Dependencies e ao lado direito marque a opção commons em Artefatos.jpr e clique em OK
Na tela abaixo clique em OK novamente
Pronto, agora você já pode realizar o deploy localmente do seus artefatos MDS.
Lembre-se apenas que ao alterar algum arquivo XSD ou WSDL que esteja dentro do projeto Artefatos, pasta apps.. que você deve fazer o deploy localmente mas diferente de um projeto normal, veja como:
No seu Menu, clique em Application >> Deploy >> soabundle
Na tela seguinte clique em Next, deixando marcado a opção default, no caso Deploy to Application Server
Clique em Next novamente
Nesta opção selecione localhost e clique em Next
Clique em Next novamente
Clique em Finish
Na guia abaixo do seu Jdeveloper em Deployment Log verifique se apareceu a mensagem
—- Deployment finished. —-
Pronto… o deploy do seu MDS foi realizado com sucesso.
Atenção: Eu recomendo baixar e subir o seu AdminServer para que suas alterações surtam efeito mas muitas vezes isso não é necessário.
Mas para distribuir os artefatos MDS para um ambiente diferente do ambiente local, em um servidor por exemplo, devemos criar um projeto simples chamado Common (ou algum outro nome que você desejar).
Para isso:
Clique em File >> New
Será aberto uma tela como abaixo:
Em seguida selecione Generic Project
Em Project Name coloque Common e clique em Finish
Agora com o botão direito do mouse em cima do projeto Common e clique em Project Properties…
Clique em Deployment e ao lado direito clique em New
Agora em Archive Type: deixe selecionado a opção JAR File e em Name: coloque Common e clique em OK
Muita atenção agora na tela abaixo:
Clique em Contributors e ao lado direito clique em Add e adicione a pasta Artefatos do seu Projeto e posteriormente clique em OK
Obs: Veja abaixo que não é a pasta “apps” conforme adicionamos anteriormente, pois será apenas até a pasta Artefatos que no meu caso estará em: /home/uans/jdeveloper/mywork/BKP/UansBlogApplication/Artefatos
Agora clique em Filters e selecione “APENAS” a pasta apps que selecionará automaticamente as pastas wsdl e xsd conforme abaixo e clique em OK
Na tela abaixo clique em OK novamente
Para certificar-se que tudo ocorreu com sucesso vamos fazer dois testes muito simples.
Primeiro Teste:
Copie um WSDL e um XSD qualquer para as pastas wsdl e xsd que criamos em artefatos
Abaixo veja que copiei o WSDL e XSD do meu projeto HelloWorldBPEL
Apenas uma observação aqui, pois dentro do WSDL HelloWorld.wsdl da minha pasta artefatos/wsdl editei meu schemaLocation para que identificasse onde esta meu xsd, no caso em: ../xsd/SelecDBAdapterBPELProcess.xsd
Agora crie um Projeto chamado Teste e em Template selecione a opção Base on a WSDL
Agora em WSDL URL coloque o caminho e nome onde está o seu WSDL que criamos em Artefatos, lembrando que deve começar usando o prefixo oramds:
No caso assim:
oramds:/apps/wsdl/HelloWorld.wsdl (Não esqueça de colocar o nome do arquivo exatamente igual junto com a extenção wsdl)
Feito isso, aperte a tecla TAB do seu teclado e caso apareça a opção Transaction e o Port Type conforme abaixo quer dizer que o BPEL conseguiu achar o seu WSDL na pasta Artefatos, basta clicar agora em OK e começar a usar tudo do seu projeto Artefatos 🙂
Segundo Teste:
Faça um deploy localmente do seu projeto Common e verifique no arquivo Common.Jar foi gerado se lá contem os arquivos WSDL e XSD que colocamos no projeto Artefatos.
Clique com o botão direito em cima do projeto Commons escolha a opção Deploy >> Common to JAR file
Verifique conforme abaixo se o arquivo Common.jar foi gerado e se dentro deste arquivo existem os arquivos WSDL e XSD que colocamos na pasta Artefatos
Pronto, agora este arquivo Common.jar já pode ser enviado a qualquer servidor para fazer deploy.
Abraços e até a Próxima
/:-D