Crear un servicio Web EJB: opción 2

Una opción alternativa a tener en cuenta son las herramientas de servicios Web de Rational Application Developer que permiten crear un servicio Web alrededor de un EJB.

Nota: Consulte la información del sitio siguiente antes de intentar migrar utilizando este método: http://publib.boulder.ibm.com/infocenter/rtnl0600/topic/com.ibm.etools.webservice.was.creation.ejb.ui.doc/tasks/twsejbw.html
Nota: Esta opción requiere configurar un tiempo de ejecución de servicio Web a través de WebSphere Integration Developer antes de invocar el asistente de servicio Web.
Para crear un servicio Web alrededor de un EJB, siga estos pasos:
  1. Pulse con el botón derecho del ratón sobre el proyecto de aplicación de empresa que es el contenedor del EJB alrededor del cuál está creando un servicio.
  2. Seleccione Propiedades, vaya a las propiedades del Servidor y asegúrese de que Tiempo de ejecución destino esté establecido en WebSphere Process Server v6.0 y que Servidor por omisión esté establecido en el WebSphere Process Server v6.0 instalado.
  3. Inicie el servidor de prueba, despliegue esta aplicación en el servidor y asegúrese de que se inicia satisfactoriamente.
  4. En la perspectiva J2EE, expanda el Proyecto EJB en la vista Explorador de proyectos. Expanda el Descriptor de despliegue y la categoría Beans de sesión. Seleccione el bean alrededor del cuál desea generar el servicio Web.
  5. Pulse con el botón derecho del ratón y seleccione Servicios Web > Crear servicio Web.
  6. Para Tipo de servicio Web seleccione Servicio Web EJB y quite la marca de la opciónIniciar servicio Web en el proyecto Web a menos que desee desplegar inmediatamente el servicio Web. Pulse Siguiente.
  7. Asegúrese de que el EJB que pulsó con el botón derecho está seleccionado aquí y pulse Siguiente.
  8. Ahora debe configurar las opciones de despliegue del servicio. Pulse el botón Editar…. Para el tipo de servidor, elija Servidor WPS v6.0 y para el tiempo de ejecución de servicio Web, elija IBM WebSphere y J2EE versión 1.4. Si no es capaz de seleccionar una combinación válida haciendo esto, consulte la sección "Prepararse para la migración" para obtener información acerca de cómo migrar los proyectos J2EE al nivel de v1.4. Pulse Aceptar.
  9. Para el proyecto de servicio, especifique el nombre del proyecto EJB que contiene el EJB. Además, seleccione el proyecto EAR adecuado. Pulse Siguiente. Tenga en cuenta que posiblemente deberá esperar varios minutos.
  10. En el panel Configuración EJB de servicio Web, seleccione el proyecto de direccionador adecuado a utilizar (elija el nombre del proyecto Web de direccionador que desearía crear y este proyecto se añadirá a la misma aplicación de empresa que el EJB original. Seleccione el transporte deseado (SOAP sobre HTTP o SOAP sobre JMS). Pulse Siguiente.
  11. Seleccione el archivo WSDL que contendrá las definiciones WSDL. Elija los métodos que desea exponer en el servicio Web y elija el estilo/la codificación adecuados (Documento/Literal, RPC/Literal o RPC/Codificado.) Seleccione la opción Definir correlación personalizada para paquete a espacio de nombres y seleccione un espacio de nombres que sea exclusivo del EJB migrado para todos los paquetes Java utilizados por el EJB (el espacio de nombres por omisión será exclusivo del nombre de paquete, lo que puede provocar conflictos si crea otro servicio Web que utilice las mismas clases Java). Cumplimente los demás parámetros si procede. Hay limitaciones para cada combinación de estilo/codificación. Consulte las limitaciones para obtener más información: http://publib.boulder.ibm.com/infocenter/rtnl0600/topic/com.ibm.etools.webservice.doc/ref/rlimit.html
  12. Pulse Siguiente y, en el panel Correlación de paquete de servicio Web con espacio de nombres, pulse el botón Añadir y, en la fila que se crea, especifique el nombre del paquete del EJB y luego el espacio de nombres personalizado que identifica de forma exclusiva a este EJB. Continúe añadiendo correlaciones para todos los paquetes Java utilizados por la interfaz EJB.
  13. Pulse Siguiente. Tenga en cuenta que posiblemente deberá esperar varios minutos.
  14. Pulse Finalizar. Después de completar el asistente, debe copiar el archivo WSDL generado que describe el servicio EJB para el proyecto de módulo de integración de negocio si el proyecto de servicio era un consumidor del servicio EJB. Se encuentra en el proyecto Web de direccionador generado bajo la carpeta WebContent/WEB-INF/wsdl. Renovar/reconstruir el proyecto de módulo de integración de negocio.
  15. Pase a la perspectiva Integración de negocio, expanda el módulo migrado y después la categoría lógica Puertos de servicio Web.
  16. Seleccione el puerto generado en los pasos anteriores, arrástrelo y suéltelo en el Editor de ensamblaje y seleccione crear una Importación con enlace de servicio Web. Seleccione la interfaz WSDL del EJB si se le solicita. Ahora, el componente SCA que consumía el EJB en 5.1 puede conectarse a esta Importación para completar los pasos de migración de reconexión manual.
Si siguió un procedimiento de arriba abajo en WebSphere Studio Application Developer Integration Edition, la generación de un esqueleto EJB a partir de una definición WSDL, siga estos pasos:
  1. Cree un proyecto Web y copie el archivo WSDL a partir del cuál desea generar el esqueleto EJB en esta carpeta origen del proyecto Web.
  2. Pulse el archivo WSDL que contiene el PortType a partir del cuál desea generar un esqueleto EJB y seleccione Servicios Web > Generar esqueleto de bean Java.
  3. Elija el tipo de servicio Web Servicio Web EJB esqueleto y cumplimente el asistente.
Después de completar el asistente, debe tener un EJB que implemente la interfaz de servicio y que no sea dependiente de las API de WSIF.

Tenga en cuenta que la interfaz puede ser ligeramente distinta de la interfaz de 5.1 y que puede ser necesario insertar un componente de mediación de interfaz entre el consumidor de 5.1 y la nueva Importación. Para hacerlo, pulse la herramienta de conexión del Editor de ensamblaje y conecte el componente origen de SCA con esta Importación con enlace de servicio Web. Como las interfaces son diferentes, se le indicará lo siguiente: Los nodos origen y destino no tienen interfaces coincidentes. Elija crear una correlación de interfaces entre el nodo destino y el origen. Efectúe una doble pulsación sobre el componente de correlación creado en el Editor de ensamblaje. Esto abrirá el editor de correlaciones. Consulte el Centro de información para obtener instrucciones acerca de cómo crear una correlación de interfaces.

Una vez finalizado esto, debe volver a conectar el servicio EJB. No debería haber referencias, por lo tanto, necesita volver a conectar la interfaz del componente Java:
  • Si este servicio lo invoca un proceso de negocio en el mismo módulo, cree una conexión a partir de la referencia de proceso de negocio adecuada a este componente EJB.
  • Si un proceso de negocio invoca este servicio en otro módulo, cree una Exportación con enlace SCA y desde el otro módulo, arrastre y suelte esta exportación en el Editor de ensamblaje de ese módulo para crear la Importación con enlace SCA correspondiente. Conecte la referencia de proceso de negocio adecuada a esa Importación.
  • Si este servicio se publicó en WebSphere Studio Application Developer Integration Edition para exponerlo externamente, consulte la sección "Migración de servicio no BPEL entrante" para obtener instrucciones acerca de cómo volver a publicar el servicio.

Comentarios
(C) Copyright IBM Corporation 2005, 2006. Reservados todos los derechos.