Sugerencias para la resolución de problemas de la infraestructura de invocación de servicios Web

Un conjunto de sugerencias específicas que le ayudarán a solucionar los problemas con WSIF (Web Services Invocation Framework).

Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.

Para obtener información sobre la resolución de problemas de nivel de WebSphere Application Server, consulte Diagnóstico de problemas (mediante las herramientas de diagnóstico).

Para identificar y resolver problemas relacionados con WSIF, puede utilizar los recursos de rastro y registro cronológico estándar de WebSphere Application Server. Si surge algún problema que considera que podría estar relacionado con WSIF, puede comprobar si se han producido mensajes de error en la consola administrativa de WebSphere Application Server y en el archivo stdout.log del servidor de aplicaciones. También puede habilitar el rastreo de depuración del servidor de aplicaciones para obtener un vuelco de excepciones detallado.

En Mensajes WSIF (Infraestructura de invocación de servicios web) se proporciona una lista de los mensajes del sistema de tiempo de ejecución de WSIF, con detalles del significado de cada mensaje.

Puede obtener una lista de las principales limitaciones conocidas aplicables cuando se utiliza WSIF en la sección WSIF - Limitaciones conocidas.

A continuación, encontrará una lista de comprobación de las principales actividades de WSIF, con consejos sobre los problemas comunes asociados con cada actividad:

Creación de un servicio
[AIX Solaris HP-UX Linux Windows][z/OS]

El archivo WSDL (Web Services Description Language) escrito directamente por el usuario puede ocasionar numerosos problemas. Para garantizar que el archivo WSDL sea válido, utilice una herramienta como, por ejemplo, WSDA (WebSphere Studio Application Developer) para crear el servicio web.

[IBM i]

El archivo WSDL (Web Services Description Language) escrito directamente por el usuario puede ocasionar numerosos problemas. Para garantizar que el archivo WSDL sea válido, utilice una herramienta como, por ejemplo, WDS (WebSphere Development Studio) para System i para crear el servicio web.

Definición del mecanismo de transporte
Para JMS (Java™ Message Service), compruebe que ha configurado JNDI (Java Naming and Directory Interface) correctamente y que ha creado las colas y fábricas de conexiones necesarias.
[AIX Solaris HP-UX Linux Windows][z/OS]Para SOAP, asegúrese de que el archivo de descriptor de despliegue dds.xml es correcto, preferiblemente creándolo mediante WebSphere Studio Application Developer (WSAD) o una herramienta similar.
[IBM i]Para SOAP, asegúrese de que el archivo de descriptor de despliegue dds.xml es correcto, preferiblemente creándolo mediante WebSphere Development Studio para System i (WDS) o una herramienta similar.
Creación de un cliente - código Java

Utilice el formato correcto para crear un servicio, un puerto, una operación y un mensaje WSIF. Para obtener ejemplos de código correcto, consulte Ejemplo: uso de WSIF para invocar el servicio Web de ejemplo AddressBook dinámicamente.

Compilación de código (cliente y servidor)
Compruebe que la vía de acceso de creación del código es correcta y que contiene los niveles correctos de archivos JAR.
Cree un archivo EAR válido para el servicio que está preparando para desplegarlo en un servidor web.
Despliegue del servicio
Cuando instale y despliegue el archivo EAR del servicio, compruebe detenidamente cualquier mensaje que se emita al desplegar el servicio.
Configuración e inicio del servidor

Asegúrese de que el archivo server.policy de WebSphere Application Server (en el directorio /properties) tiene los valores de seguridad correctos. Para obtener más información, consulte Cómo proteger WSIF.

Configuración de WSIF

Compruebe que el archivo wsif.properties está configurado correctamente. Para obtener más información, consulte Archivo wsif.properties: contenidos iniciales.

Ejecución del cliente

Compruebe que ha definido la classpath correctamente para que incluya las referencias a las clases de cliente, los archivos JAR de WSIF y otros archivos JAR necesarios, o preferentemente ejecute el cliente utilizando la herramienta launchClient de WebSphere Application Server.

Compruebe que ha definido la variable classpath correctamente para que incluya las referencias a las clases de cliente, los archivos JAR de WSIF y otros archivos JAR necesarios, o preferentemente ejecute el cliente utilizando la herramienta de cliente de inicio de WebSphere Application Server. Si desea más información sobre esta herramienta, consulte el capítulo Ejecución de clientes de aplicaciones del manual en PDF Desarrollo y despliegue de aplicaciones.

Se reciben errores de definición de clase no encontrada cuando se ejecuta el código de cliente

Este problema indica normalmente un error en la configuración de la classpath. Compruebe que estén incluidos los archivos JAR relevantes.

Error que indica que no se encuentra WSDL

A continuación, se enumeran varias causas posibles:

  • El servidor de aplicaciones no se está ejecutando.
  • La ubicación del servidor y el número de puerto en el WSDL no son correctos.
  • El WSDL está formado incorrectamente (compruebe los mensajes de error del archivo stdout.log del servidor de aplicaciones).
  • El servidor de aplicaciones no se ha reiniciado desde que se ha instalado el servicio.

También puede realizar las siguientes comprobaciones:

  • ¿Se puede cargar el WSDL en el navegador web desde la ubicación especificada en el mensaje de error?
  • ¿Se pueden cargar los archivos de enlace WSDL correspondientes en el navegador Web?

El archivo EAR del Servicio Web no se puede instalar correctamente en el servidor de aplicaciones

Es probable que el formato del archivo EAR no sea correcto. Verifique la instalación realizando los pasos siguientes:
  • Para un enlace EJB, ejecute la herramienta \bin\dumpnamespace de WebSphere Application Server. Esta herramienta enumera el contenido actual del directorio JNDI.
  • Para un enlace SOAP a través de HTTP, abra la página http://pathToServer/WebServiceName/admin/list.jsp (si tiene las páginas de administración de SOAP instaladas). En esta página se enumeran todos los servicios web instalados en ese momento.
  • Para un enlace SOAP a través de JMS, realice las siguientes comprobaciones:
    • Compruebe que el gestor de colas se esté ejecutando.
    • Compruebe que se hayan definido las colas necesarias.
    • Compruebe la configuración JNDI.
    • Utilice la opción "display context" de la herramienta jmsadmin para enumerar las definiciones JNDI actuales.
    • Compruebe que el direccionador RPC (Remote Procedure Call) se esté ejecutando.

Problema de permisos o error de seguridad

Compruebe que el archivo server.policy de WebSphere Application Server (en el directorio /properties) tiene los valores de seguridad correctos. Para obtener más información, consulte Cómo proteger WSIF.

La utilización de WSIF con varios clientes puede ocasionar un error de análisis SOAP

Antes de desplegar un servicio web en WebSphere Application Server, debe decidir el ámbito del servicio web. El archivo descriptor de despliegue dds.xml para el servicio web incluye la línea siguiente:

    <isd:provider type="java" scope="Application" ......

Puede establecer el atributo Scope en Application o Session. El valor predeterminado es Application, y este valor es correcto si cada solicitud realizada al servicio web no requiere objetos que se tengan que mantener durante más de una sola instancia. Si se establece Scope en Application, los objetos no estarán disponibles para otra solicitud mientras se ejecute la instancia individual y hasta que una vez finalizada se liberen los objetos. Si el servicio web necesita mantener objetos para varias solicitudes y que éstos sean exclusivos en cada solicitud, debe establecerse Scope en Session. Si se establece Scope en Session los objetos no estarán disponibles para otra solicitud mientras dure la sesión y hasta que una vez finalizada se liberen los objetos. Si el ámbito se estable en Application y no en Session, es posible que obtenga el siguiente error SOAP:

SOAPException: SOAP-ENV:ClientParsing error, response was:
FWK005 parse might not be called while parsing.;
nested exception is:

[SOAPException: faultCode=SOAP-ENV:Client; msg=Parsing error, response was:

FWK005 parse might not be called while parsing.; 
        targetException=org.xml.sax.SAXException:
FWK005 parse might not be called while parsing.]

Se producen errores de la búsqueda JNDI cuando se utilizan los mismos nombres para las colas de mensajes JMS y las fábricas de conexiones de cola JMS que se ejecutan en servidores de aplicaciones en máquinas distintas

No debe utilizar los mismos nombres para las colas de mensajes y las fábricas de conexiones de cola que se ejecutan en servidores de aplicaciones en máquinas distintas, ya que WSIF siempre comprueba primero los destinos de JMS localmente y sólo utiliza la referencia JNDI completa, si no logra encontrar el destino localmente. Por ejemplo, si ejecuta un servicio web en una máquina remota, y dispone de un servidor de aplicaciones que se esté ejecutando localmente y que utilice los mismos nombres para las colas de mensajes y las fábricas de conexiones de cola, WSIF buscará y utilizará las colas locales, incluso si el destino de JNDI remoto aparece completo en la definición del servicio WSDL.

Un cliente JAX-RPC que se ejecuta en WebSphere Application Server versión 5 utiliza SOAP sobre JMS para invocar un servicio web que se ejecuta en un servidor de aplicaciones de versión 5

Un cliente JAX-RPC que se ejecuta en WebSphere Application Server versión 5 utiliza SOAP sobre JMS para invocar un servicio web que se ejecuta en un servidor de aplicaciones de versión 5. No es necesario ningún ID de usuario ni contraseña en la cola MQSeries de destino. Después de migrar el servidor de aplicaciones para la versión 6 y de utilizar la mensajería por omisión de la versión 6, las peticiones de cliente fallarán porque la autenticación básica ahora está habilitada.

El problema aparece como un mensaje de las anotaciones cronológicas:
SibMessage W [:] CWSIT0009W: Ha fallado una solicitud de cliente en el servidor de aplicaciones
con el punto final <nombre_punto final> del bus <su_bus> con la razón: CWSIT0016E: 
El ID de usuario nulo ha fallado la autenticación en el bus <su_bus>.

Para ver los pasos que deben seguirse para resolver el problema, consulte el siguiente consejo de resolución de problemas de tecnologías de integración de servicios: Migración de un servidor de aplicaciones Versión 5.1 a WebSphere Application Server Versión 7.0 o posterior

Actualmente, el proveedor SOAP predeterminado de WSIF (el proveedor SOAP de servicio Web de IBM) no es totalmente interoperativo con los servicios que se ejecutan en el proveedor SOAP de Apache anterior.

Esto se debe a que el proveedor SOAP del servicio Web de IBM se ha diseñado para que sea totalmente interoperativo con el servicio web compatible con JAX-RPC y un proveedor SOAP de Apache no puede proporcionar este tipo de servicio. Para habilitar la interoperatividad, modifique el servicio web o el proveedor SOAP predeterminado de WSIF, como se describe en Proveedor SOAP de WSIF: trabajo con aplicaciones existentes.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwsf_trouble
File name: rwsf_trouble.html