Tags

, , , , , , , , , , , , , , , , , , , ,

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 MDSMeta 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.

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

Imagem Blog UansCarvalho

Será aberto uma tela como abaixo:

Em seguida selecione Generic Project

Imagem Blog UansCarvalho

Em Project Name coloque Artefatos e clique em Finish

Imagem Blog UansCarvalho

Agora com o botão direito do mouse em cima do projeto Artefatos e clique em New

Imagem Blog UansCarvalho

Clique em Folder e em seguida OK

Imagem Blog UansCarvalho

Criarei a primeira pasta “apps”

Imagem Blog UansCarvalho

Veja abaixo a primeira pasta “apps” criada

Imagem Blog UansCarvalho

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:

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Localize a seguinte parte do seu arquivo:

 <metadata-namespaces>
      <namespace path=”/soa/shared” metadata-store-usage=”mstore-usage_1″/>
</metadata-namespaces>

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

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…

Imagem Blog UansCarvalho

Clique em Deployment e depois em New

Imagem Blog UansCarvalho

Na tela abaixo coloque o nome commons e clique em OK

Obs: Pode ser qualquer outro nome

Imagem Blog UansCarvalho

Na tela abaixo clique em Contributors e posteriormente em Add… para indicarmos onde esta a pasta app que criamos em nosso projeto

Imagem Blog UansCarvalho

No meu caso está em: /home/uans/jdeveloper/mywork/BKP/UansBlogApplication/Artefatos/apps

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Na tela abaixo clique em OK novamente.

Imagem Blog UansCarvalho

Agora clique com o botão direito diretamente no seu application, no meu caso em UansBlogApplication e clique em Application Properties…

Imagem Blog UansCarvalho

Clique em Deployment e ao lado direito em New…

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Agora clique em Dependencies e ao lado direito marque a opção commons em Artefatos.jpr e clique em OK

Imagem Blog UansCarvalho

Na tela abaixo clique em OK novamente

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Na tela seguinte clique em Next, deixando marcado a opção default, no caso Deploy to Application Server

Imagem Blog UansCarvalho

Clique em Next novamente

Imagem Blog UansCarvalho

Nesta opção selecione localhost e clique em Next

Imagem Blog UansCarvalho

Clique em Next novamente

Imagem Blog UansCarvalho

Clique em Finish

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Será aberto uma tela como abaixo:

Em seguida selecione Generic Project

Imagem Blog UansCarvalho

Em Project Name coloque Common e clique em Finish

Imagem Blog UansCarvalho

Agora com o botão direito do mouse em cima do projeto Common e clique em Project Properties…

Imagem Blog UansCarvalho

Clique em Deployment e ao lado direito clique em New

Imagem Blog UansCarvalho

Agora em Archive Type: deixe selecionado a opção JAR File e em Name: coloque Common e clique em OK

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Agora clique em Filters e selecione “APENAS” a pasta apps que selecionará automaticamente as pastas wsdl e xsd conforme abaixo e clique em OK

Imagem Blog UansCarvalho

Na tela abaixo clique em OK novamente

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Agora crie um Projeto chamado Teste e em Template selecione a opção Base on a WSDL

Imagem Blog UansCarvalho

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  🙂

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Imagem Blog UansCarvalho

Pronto, agora este arquivo Common.jar já pode ser enviado a qualquer servidor para fazer deploy.

 

 

Abraços e até a Próxima

/:-D