En las aplicaciones SCA puede implementar un componente de un compuesto mediante un segundo compuesto. Esto permite la composición recursiva.
Antes de empezar
El ejemplo de este tema utiliza el ejemplo SCA AccountServices como punto de partida. Para obtener enlaces al ejemplo, consulta la
"Información relacionada" al final de este tema.
Acerca de esta tarea
Los pasos siguientes muestran un ejemplo simple de composición recursiva en herramientas SCA:
Procedimiento
- En una aplicación SCA existente, cree un compuesto nuevo.
Pulse con el botón derecho en el nodo de espacio de nombres y seleccione . El compuesto podría tener el mismo espacio de nombres que el compuesto existente.
Puede cambiar el espacio de nombres si es necesario.
- Seleccione el servicio del compuesto original que sea el servicio general proporcionado por el compuesto.
- Pulse con el botón derecho en el nombre del servicio que ha seleccionado y pulse Promocionar. El resultado de promocionar un servicio de componente es que pasa a ser un servicio disponible en el nivel de compuesto. Tenga en cuenta que puede conseguir el mismo resultado manualmente añadiendo un servicio al compuesto mediante la paleta o la barra de acciones, y luego creando una conexión entre el servicio de compuesto y el servicio de componente.
- Guarde el compuesto original.
- Abra el compuesto nuevo que ha creado en el primer paso de esta tarea.
- Con la paleta o la barra de acciones, añada un componente nuevo al compuesto.
- Pulse con el botón derecho en el componente nuevo y seleccione . Se abrirá el diálogo Selección de compuesto.
- En el diálogo Selección de compuesto, elija el compuesto original en la aplicación.
- Añada un servicio al componente nuevo. A continuación, pulse con el botón derecho en el servicio y seleccione Mostrar vista Propiedades. En la vista Propiedades, seleccione la pestaña Núcleo. Tenga en cuenta que el nombre predeterminado del servicio es servicio.
- Guarde el proyecto. Si el proyecto ahora muestra un error y la pestaña Problemas tiene el mensaje El servicio "servicio" no está definido por la implementación, esto se debe a que el nombre de servicio que se utiliza en un componente implementado por un compuesto debe coincidir con el nombre del servicio proporcionado por el compuesto original.
- Si ha recibido el error mencionado en el paso anterior, en las propiedades para el servicio nuevo cambie el nombre para que coincida con el servicio proporcionado por el compuesto que lo implementa, y guarde el proyecto. Así se ha resuelto el error.
Resultados
Ahora tiene una aplicación SCA creada que utiliza composición recursiva.