Herramientas de servicios Web: notas de release

1.0 Introducción
2.0 Software soportado y especificaciones
3.0 Cambios realizados desde el release anterior
4.0 Limitaciones
   4.1 No es posible ejecutar el ejemplo Supply Chain Management
5.0 Problemas conocidos
   5.1 Explorador de servicios Web
   5.2 El servidor de supervisión TCP/IP no funciona en Linux
   5.3 Interoperabilidad con el soporte de ejecución SOAP de IBM
   5.4 Generar un documento WSDL a partir de un archivo DADX
   5.5 Generador de JSP de las herramientas Web
   5.6 Caso práctico Hospital
   5.7 Utilizar el cliente de prueba universal
   5.8 En algunos casos, se permiten múltiples salidas con los servicios Web de DADX
   5.9 La preferencia de controlador JDBC está destinada sólo a Linux
   5.10 Hay que actualizar los archivos de ejemplo de DAD si XML Extender no está instalado en el directorio por omisión
   5.11 Problemas relacionados con los servicios Web de DADX
   5.12 Los diálogos emergentes del Explorador pueden no visualizarse correctamente si están funcionando a la vez Mozilla y Netscape
   5.13 Soporte para la generación de DADX
   5.14 Errores de WSDL después importar un archivo de servicios Web de 4.0.x
   5.15 Problemas al utilizar Linux con GTK
   5.16 Utilizar el servidor Tomcat con el soporte de ejecución de AXIS
   5.17 Problemas al utilizar la línea de mandatos de los servicios Web
   5.18 Creación de servicios Web sin un servidor existente
   5.19 Generar una aplicación de ejemplo de servicios Web
   5.20 Importar archivos WSDL con autenticación básica HTTP
   5.21 Problemas de utilización del soporte de ejecución de WebSphere v5.0.2
   5.22 Configurar un grupo DADX con información de origen de datos
   5.23 Cargar el localizador mediante el Cliente de prueba universal
   5.24 Preferencias de recursos no observadas
   5.25 Problemas de utilización del soporte de ejecución de Apache Axis 1.0
   5.26 El JSP de ejemplo de servicio Web no puede compilarse
   5.27 Error de localhost no definido
   5.28 Limitaciones permanentes al utilizar el soporte de ejecución SOAP de IBM
   5.29 El cliente y el servicio Web utilizan un soporte de ejecución diferente
   5.30 Pulsar Finalizar en el asistente de cliente de servicios Web
   5.31 Hoja de apuntes de los servicios Web

1.0 Introducción

La característica de herramientas de servicios Web le permite descubrir, crear y publicar servicios Web de beans Java, DADX, beans de empresa y URL. En este archivo readme se describen los problemas conocidos, las limitaciones y los métodos alternativos asociados a las siguientes funciones de las herramientas de servicios Web:

2.0 Software soportado y especificaciones

En este release de las herramientas de servicios Web, el código generado está en conformidad con las siguientes especificaciones:

Este release de las herramientas de servicios Web da soporte a los siguientes entornos de tiempo de ejecución:

Si se propone lanzar el entorno de prueba de WORF fuera del entorno de trabajo utilizando Mozilla, le recomendamos que haga servir como mínimo Mozilla Versión 1.3.1. La salida que se obtiene al invocar el servicio Web y los archivos de descripción podrían no representarse correctamente si se utilizan versiones anteriores del navegador Mozilla.

El soporte de ejecución DADX requiere DB2 7.2 con el paquete de arreglos 6 o superior, DB2 8.1 o superior.

3.0 Cambios realizados desde el release anterior

Las siguientes características son nuevas en las herramientas de servicios Web v5.1:

4.0 Limitaciones

4.1 No es posible ejecutar el ejemplo Supply Chain Management

El ejemplo Supply Chain Management no puede ejecutarse en WAS Express.

5.0 Problemas conocidos

5.1 Explorador de servicios Web

5.2 El servidor de supervisión TCP/IP no funciona en Linux

El servidor de supervisión TCP/IP no funciona en Linux. Los intentos de insertar el servidor de supervisión entre un servicio Web y un cliente de servicios Web (por ejemplo, los archivos JSP de ejemplo de servicios Web, los archivos JSP de bean Java de herramientas Web y el cliente de prueba universal) interferirán en las comunicaciones entre el cliente y el servicio. En concreto, el cliente quedará indefinidamente colgado al producirse la primera respuesta del servicio. Para recuperar el sistema ante esta condición en los archivos JSP de ejemplo o en el cliente de prueba universal (UTC), cierre todos los navegadores, luego lance un navegador nuevo desde fuera de WebSphere Studio y teclee el URL apropiado para los archivos JSP de ejemplo generados o para el cliente de prueba universal.

Para supervisar el tráfico SOAP en Linux, intente hacerlo con otra herramienta de supervisión, como el túnel TCP/IP, que está incluido en la unidad ejecutable Apache SOAP y se puede bajar de http://ws.apache.org/soap/index.html.tool. Inicie el túnel e invoque una operación de cliente de servicio Web. El tráfico de peticiones y respuestas debe mostrarse en el túnel, pero el cliente parecerá suspendido. Detenga el túnel. Esto hará que el cliente se desbloquee y que la operación se lleve a cabo. Reinicie el túnel antes de intentar la llamada siguiente.

5.3 Interoperabilidad con el soporte de ejecución SOAP de IBM

5.4 Generar un documento WSDL a partir de un archivo DADX

5.5 Generador de JSP de las herramientas Web

Hay que añadir el archivo db2java.zip de controlador DB2 a la vía de acceso de clases ws.ext.dirs de WebSphere. Para añadir db2java.zip, siga estos pasos:

  1. Pase a la perspectiva Servidores (Ventana > Abrir perspectiva > Servidor).
  2. En el panel Configuración del servidor, expanda Servidor.
  3. Pulse dos veces en WebSphere v.4.0 Test Environment. Se abre el editor de instancias.
  4. En el editor de instancias, pulse la pestaña Vías de acceso y después pulse Añadir JAR externos en la sección Vía de acceso de clases específica de WebSphere (ws.ext.dirs) para añadir /home/db2inst1/sqllib/java12/db2java.zip a la vía de acceso de WebSphere.
  5. Seleccione Archivo > Guardar (nombre del archivo) para guardar los cambios y después salga del editor de instancias.

Para obtener actualizaciones de la documentación del caso práctico Hospital, vaya a WebSphere Developer Domain y pulse Biblioteca.

5.7 Utilizar el cliente de prueba universal

Al lanzar el cliente de prueba universal desde el asistente de servicios Web, el URL de proveedor de JNDI está establecido en el puerto por omisión de WebSphere v5, que es el 2809. Si está utilizando un servidor WebSphere v4 o si ha cambiado el número de puerto, no podrá hacer búsquedas en el directorio JNDI. Si intenta acceder al directorio JNDI, recibiría el mensaje de error:

IWAD0403E No se ha podido construir el árbol de JNDI: Se ha capturado CORBA.COMM_FAILURE al resolver reference=WsnNameService inicial

Para salir al paso de este problema:

  1. Pulse dos veces en el servidor que está utilizando. Así se abrirá la página de propiedades del servidor.
  2. Seleccione la pestaña Puertos.
  3. Copie el puerto bootstrap de ORB.
  4. Abra la ventana Propiedades de JNDI en el cliente de prueba universal.
  5. Pegue el puerto bootstrap en el cuadro de entrada de texto URL de proveedor.

5.8 En algunos casos, se permiten múltiples salidas con los servicios Web de DADX

Normalmente, en nuestras herramientas no están soportadas múltiples salidas de un servicio Web. Sin embargo, en el caso de los servicios Web de DADX, se permiten múltiples salidas si se establece que la propiedad de grupo Utilizar estilo de documento tiene el valor true. En este caso, cuando Utilizar estilo de documento es true, las distintas salidas se combinan entre sí para formar un solo documento XML.

5.9 La preferencia de controlador JDBC está destinada sólo a Linux

Se ha añadido una nueva categoría de preferencias de servicios Web (Ventana > Preferencias > Servicios Web) que se llama Controladores JDBC. Esta preferencia está disponible en todas las plataformas, pero solo está pensada para utilizarse en Linux. En Linux, puede resultar difícil determinar la ubicación del archivo JAR que contiene los controladores JDBC. Por lo tanto, se ha añadido esta página de preferencias para permitirle especificar qué archivo JAR hay que usar. Actualmente, la información de este archivo JAR tan solo se usa en el código de validación de DADX.

5.10 Hay que actualizar los archivos de ejemplo de DAD si XML Extender no está instalado en el directorio por omisión

Los archivos DAD ubicados en el directorio Dir_instalación_WS\wstools\eclipse\plugins\com.ibm.etools.webservice_<versión>\samples\DADX_examples tal vez tengan que modificarse para que reflejen la configuración concreta del sistema.

Cerca de la parte superior del archivo hay una línea como esta:

<!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd">

Si XML Extender se ha cargado en una ubicación que no sea c:\dxx, hay que actualizar esta serie mediante otra que refleje la ubicación real. Esto también atañe a las máquinas Linux, donde la ubicación suele ser /usr/IBMdb2xml.

5.11 Problemas relacionados con los servicios Web de DADX

5.12 Los diálogos emergentes del Explorador pueden no visualizarse correctamente si están funcionando a la vez Mozilla y Netscape

Los diálogos emergentes del explorador de servicios Web pueden no visualizarse correctamente si están funcionando a la vez Mozilla y Netscape. Son emergentes el diálogo Examinar WSDL y el diálogo Examinar categoría. Para salir al paso de este problema, utilice Mozilla o Netscape, pero no los dos navegadores al mismo tiempo.

5.13 Soporte para la generación de DADX

Las funciones definidas por usuario (UDF) figuran en el asistente Generar DADX, pero actualmente no existe soporte para generar DADX a partir de las funciones definidas por el usuario. Solo hay soporte para generar DADX a partir de archivos DAD, procedimientos almacenados y sentencias SQL. Si se selecciona una función definida por usuario (UDF), se generará un archivo de esqueleto DADX simple.

5.14 Errores de WSDL después importar un archivo de servicios Web de 4.0.x

Si ha importado un archivo de servicios Web de 4.0.x, es posible que reciba los siguientes mensajes de error:

Error La parte 'result' tiene definido un valor 'anyElement' que no es válido para el tipo. Las declaraciones de tipo deben hacer referencia a valores válidos definidos en un esquema.

Error La parte 'return' tiene definido un valor 'findPatientResult' que no es válido para el elemento. Las declaraciones de elemento deben hacer referencia a valores válidos definidos en un esquema.

Error La parte 'response' tiene definido un valor 'findPatientResponse' que no es válido para el elemento. Las declaraciones de elemento deben hacer referencia a valores válidos definidos en un esquema.

Para salir al paso de este problema:

  1. Suprima los archivos WSDL.
  2. Regenere los servicios Web volviendo a ejecutar el asistente Servicios Web.

5.15 Problemas al utilizar Linux con GTK

5.16 Utilizar el servidor Tomcat con el soporte de ejecución de AXIS

5.17 Problemas al utilizar la línea de mandatos de los servicios Web

5.18 Creación de servicios Web sin un servidor existente

5.19 Generar una aplicación de ejemplo de servicios Web

5.20 Importar archivos WSDL con autenticación básica HTTP

Al generar esqueletos o clientes desde un archivo WSDL que contenga importaciones relativas y esté protegido por autenticación básica HTTP, el usuario verá un mensaje de error que indica que el archivo WSDL no puede resolverse aunque se hayan especificado el ID de usuario y la contraseña correctos. El problema consiste en que el ID de usuario y la contraseña sólo se utilizan para recuperar el archivo WSDL original, y no los archivos importados por él.

Para evitar este problema, el usuario puede bajar primero el archivo WSDL y todos los archivos importados por éste al entorno de trabajo y, a continuación, generar el esqueleto o el cliente a partir del archivo WSDL bajado.

5.21 Problemas de utilización del soporte de ejecución de WebSphere v5.0.2

5.22 Configurar un grupo DADX con información de origen de datos

Si se utiliza WebSphere Application Server V5.0 para alojar un servicio Web DADX, el archivo group.properties del grupo DADX debe utilizar la siguiente propiedad initialContextFactory:

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

Asimismo, debe añadirse lo siguiente al archivo web.xml del proyecto que contiene el grupo DADX. (Suponiendo que el nombre JNDI del origen de datos sea jdbc/hospital.)

       <resource-ref id="ResourceRef_1058550453092">
              <res-ref-name>jdbc/hospital</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>CONTAINER</res-auth>
              <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
 

5.23 Cargar el localizador mediante el Cliente de prueba universal

Si el Cliente de prueba universal no puede precargar la clase de localizador de cliente generada por el soporte de ejecución de WebSphere v5.0.2 o Axis, se debe a que el nombre de la clase de bean Java del proyecto Web de servicio es el mismo que el nombre de la clase SEI del proyecto Web del cliente. Para solucionar este problema:

  1. Elimine el proyecto Web de cliente del área de trabajo.
  2. Cree el proyecto Web de cliente bajo un EAR diferente, en el que el nombre del proyecto EAR debe derivarse alfabéticamente del nombre del proyecto EAR de servicio.  Por ejemplo, si el nombre del proyecto EAR de servicio es "DefaultEAR", cree el proyecto EAR nuevo con el nombre "ClientEAR".
  3. Vuelva a ejecutar el asistente de servicios Web.

 

5.24 Preferencias de recursos no observadas

Las preferencias de sobreescribir archivos, creación de carpetas y reserva automática de archivos no se conservan al crear servicios Web mediante el soporte de ejecución de WebSphere v5.0.2 y Axis. La creación de carpetas se permite siempre y la reserva automática de archivos nunca se habilita.

Al utilizar el soporte de ejecución de WebSphere v5.0.2, el archivo WSDL, SEI y los artefactos de despliegue (serializadores y deserializadores) se sobreescriben siempre. Los artefactos de desarrollo (bean de servicio, beans de tipo complejo, clases de retención y ayuda) nunca se sobreescriben. Sin embargo, el usuario recibirá un aviso acerca de la sobreescritura de los descriptores de despliegue, si existen. Puede elegir Aceptar para sobreescribir los descriptores de despliegue y continuar con el trabajo o pulsar Cancelar para evitar que se sobreescriban los descriptores.

Al utilizar el soporte de ejecución de Apache Axis 1.0, los emisores de Axis generan de nuevo cada vez todos los archivos Java de servidor/cliente, deploy.wsdd y undeploy.wsdd. En el caso práctico de generación de servicio, WSDL2Java sólo generará el archivo de implementación de esqueleto, si aún no existe. Si esta implementación ya existe, no se sobreescribirá.

5.25 Problemas de utilización del soporte de ejecución de Apache Axis 1.0

5.26 El JSP de ejemplo de servicio Web no puede compilarse

Al generar esqueletos o proxys de servicio Web desde un archivo WSDL que utilice el mismo nombre para uno de sus elementos <service> y para el elemento <port>, no utilice JSP de ejemplo como cliente de prueba. Los JSP de ejemplo generados contienen errores y no se compilarán. Los intentos de ejecutar los JSP de ejemplo en el servidor provocarán un ERROR 500 en el navegador, que indica que los JSP de ejemplo no pueden cargarse, y excepciones en la consola del servidor, que indican que el contenedor de servlets no ha podido compilar los JSP de ejemplo.

5.27 Error de localhost no definido

El asistente de creación de servicios Web puede fallar durante la generación de WSDL si el nombre de sistema principal "localhost" no está definido en la máquina. El cliente de prueba universal (UTC) tampoco se lanzará satisfactoriamente si no se ha definido "localhost".

En Windows, debe figurar la siguiente entrada en el archivo [INSTALL-DRIVE]\WINNT\system32\drivers\etc\hosts:

127.0.0.1 localhost

En Linux, debe figurar la siguiente entrada en el archivo /etc/hosts:

127.0.0.1 localhost

5.28 Limitaciones permanentes al utilizar el soporte de ejecución SOAP de IBM

El soporte de ejecución SOAP de IBM debe utilizarse principalmente por razones de compatibilidad hacia atrás. Es muy aconsejable utilizar el asistente de servicios Web con el soporte de ejecución de IBM WebSphere 5.0.2 a todos los efectos de producción. Al utilizar el asistente de servicios Web con el soporte de ejecución SOAP de IBM, el usuario puede verse sometido a las siguientes limitaciones:

5.29 El cliente y el servicio Web utilizan un soporte de ejecución diferente

Si crea un servicio Web desde un bean Java o EJB, eligiendo el soporte de ejecución SOAP de IBM para el servicio y Apache Axis 1.0 como soporte de ejecución de cliente, puede que reciba el error:
WSDL no encontrado

Para evitar el problema, cree primero el servicio Web sin elegir generar un proxy. A continuación, cree un cliente de servicio Web desde el archivo WSDL generado.

5.30 Pulsar Finalizar en el asistente de cliente de servicios Web

En el asistente de cliente de servicios Web, si el usuario pulsa Finalizar en la página Configuración de entorno de cliente, obtendrá el error:

"null" no puede resolverse

La solución consiste en pulsar Siguiente en esa página y en la siguiente y, a continuación, pulsar Finalizar.

5.31 Hoja de apuntes de los servicios Web

En las hojas de apuntes Crear, probar y validar un servicio Web compatible con WS-I y Crear un servicio Web desde un archivo WSDL, si utiliza el archivo HelloService.wsdl de wsad_install/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples, modifique la ubicación del puerto de servicio en función al soporte de ejecución, de la forma siguiente:

Para IBM SOAP:

location="http://localhost:9080/HelloWorldSample/servlet/rpcrouter"

Para Apache Axis o WebSphere 5.0.2:

location="http://localhost:9080/HelloWorldSample/services/Hello_Port"

Si importa su propio archivo wsdl, asegúrese de que la ubicación está establecida correctamente de acuerdo con el soporte de ejecución seleccionado.

Volver al archivo readme principal