jueves, 21 de septiembre de 2017

Referencias de WebServices y uso de Config Plan - BPEL 12c


Con SOA Suite 12c puedes utilizar adaptadores SOAP en tu aplicación (composite) y utilizar un Config Plan para cambiar los endpoints (referencias), de modo que pueda funcionar en otros entornos (como producción o test).

Esto es util ya que como regla general uno como desarrollador no puede modificar el contrato de un proveedor. Solo se nos permite crear un Wrapper y poner alli las modificaciones o hacer uso de un Config Plan que cambie aquellos datos que precisamos.



Creando Un Config Plan

Para crear un Config Plan, hacer clic derecho sobre el archivo composite.xml y elegir la opción: Generate Config Plan.




JDeveloper genera un Plan y detecta las referencias de los WebServices. Sólo es necesario cambiar la URL del atributo location de ws binding de esta referencia:




Pero cuando se redeploya este composite al dominio para aplicar las nuevas URLs, aparecen errores de despliegue. Analizando el error en el archivo soa_server1-diagnostic.log se puede ver que el dominio se está quejando de que existen diferentes versiones para un XSD (por dar un ejemplo). Esto es cierto, porque el composite que estamos tratando de deployar tiene una versión de liberación más alta que la que está ya deployada en el dominio. De alguna manera todavía hay referencias de importación de esquemas XSD que apuntan a la URL obsoleta. Observando el proyecto SOA, se descubre que hay algunas referencias en una importación del archivo composite.xml.




Esto aplica de igual manera para el contrato del composite (archivo WSDL). Es necesario cambiar los endpoints en el archivo del Config Plan recién generado. Anteriormente, se hizo el cambio de las referencias en la importación dentro del archivo composite.xml.
Siendo necesario cambiar de esto:






A esto:





Por último es necesario cambiar las URLs en los archivos WSDL y XSD del proveedor dentro de nuestro composite. JDeveloper ya genera por defecto un elemento <wsdlAndSchema/> con todos los archivos del proyecto. Cuando agregas referencias en el archivo composite.xml o añades nuevos componentes, probablemente debas actualizar el Config Plan:




Como se puede apreciar, dentro del atributo name en el elemento <wsdlAndSchema/> están contenidos todos los archivos de nuestro proyecto SOA separados por un | (pipe).

Modificar el Config Plan, y cambiar de esto:




a esto:




Y Ahora si, despues de todo se puede redeployar por fin el composite con las nuevas URLs haciendo uso de un Config Plan.

Para hacer el deploy de forma manual, es necesario deployar el composite como SAR (dando como resultado un archivo JAR) y luego acceder al Consola del Enterprise Manager (EM Console) y a la hora de hacer el deploy se nos pedirá localizar el JAR del Composite y el archivo XML del Config Plan:




Cualquier duda puede debatirse con respeto en los comentarios.

2 comentarios:

  1. Pregunta colega, para cambiar las referencias de tipo rest, la herramienta no alcanza a mirar esas referencias, ahí debemos cambiarlas a mano o de plano este mecanismos para referencias de tipo rest ¿ no funcionan?, Saludos.

    ResponderEliminar
    Respuestas
    1. Probablemente JDeveloper no las auto-detecte... en ese caso deberias armar el Config Plan a mano, teniendo en cuenta las especificaciones del mismo.

      Has probado a indicarle el atributo del XML donde se encuentra la URL del servicio REST? Tambien puedes dejarnos el fragmento del Config Plan que estas armando para poder ayudarte. Saludos!

      Eliminar