sexta-feira, 7 de outubro de 2011

Oracle Service Bus - Gerando correctamente WSDLs

Quando o OSB (versão 11.1.1.5.0) não está acessível directamente aos clientes (por detrás de um Reverse Proxy por exemplo), os WSDLs não são gerados correctamente, ficando o endpoint com o hostname da máquina onde está deployed o OSB.

Isto é uma situação que se deve evitar, pois está-se a expor nomes internos que não devem ser conhecidos fora.

Esta situação só ocorre se o OSB não estiver em Cluster.

Para corrigir o problema efectuar os seguintes passos:
  1. Criar um cluster
  2. Adicionar o servidor do OSB ao cluster
  3. No cluster, na tab HTTP configurar os campos Frontend Host e Frontend HTTP Port para os valores do Reverse Proxy por exemplo
  4. Parar o AdminServer e o servidor do OSB
  5. Editar o ficheiro config.xml conforme indicado a seguir
  6. Restart do Admin Server
  7. Restart do servidor OSB
  8. Verificar a geração de WSDLs
Pode-se também recriar o domínio do OSB, configurando o mesmo em cluster, e assim não haverá edição manual de ficheiros.

Agora a geração já será feita como deve ser.


Edição manual do ficheiro config.xml

Esta edição apenas é necessária se não se quiser recriar o domínio de raiz.
  • Substituir o nome do servidor do OSB pelo nome do cluster excepto nos casos seguintes:
    • <server>
      • <name>.....
      • <jta-migratable-target><user-preferred-server>....
      • <server-diagnostic-config><name>....
      • <virtual-machine-name>NOME_DO_DOMINIO_.....</virtual-machine-name>
    • </server>
    • Todos os valores nos vários <jms-server>
    • Todos os valores em <migratable-target>
    • Todos os valores nos vários <file-store>
    • Todos os valores nos vários <jms-system-resource>
    • Todos os valores nos vários <saf-agent>

Sem comentários: