Este archivo contiene una lista completa de las limitaciones, permanentes y temporales, que afectan a los servicios web.
Las limitaciones que puede encontrar cuando trabaja con los servicios web se dividen en las siguientes secciones:
Problemas encontrados cuando se utiliza un WebSphere Application Server protegido
Puede encontrar los siguientes mensajes de error: Mensaje de error de SSLSocketFactory: java.net.SocketException: java.lang.ClassNotFoundException: No se puede encontrar la clase especificada com.ibm.websphere.ssl.protocol.SSLSocketFactory
Para poder utilizar el explorador de servicios web, generar los JSP de ejemplo, crear un servicio web o un cliente a partir de un archivo HTTPS WSDL, o desplegar un servicio web de Axis, primero debe configurar el entorno de trabajo para que se comunique con un servidor a través de SSL (capa de sockets seguros). Puede encontrar información sobre esta tarea en: Problemas al trabajar con un servidor protegido utilizando conexiones SSL.
Puede encontrar el siguiente mensaje de error: Error
al abrir el socket: javax.net.ssl.SSLHandshakeException: certificado desconocido
Para utilizar el asistente de servicios web para recuperar un WSDL HTTPS o utilizar el explorador de servicios web en un WebSphere Application Server protegido, siga los pasos de Configuración de IBM® JRE para comunicarse con un WebSphere Application Server protegido.
Problemas encontrados cuando se utilizan los asistentes de servicios web
- Si pulsa Cancelar en algún momento del proceso de los asistentes de servicios web, puede tener entradas de servicio web en los descriptores de despliegue y archivos generados en el espacio de trabajo. Suprima manualmente estos archivos después de cerrar el asistente.
- Los asistentes de servicios web no pueden publicar archivos EAR:
Problema: cuando se crea un servidor remoto utilizando el tiempo de ejecución de apéndice, el archivo EAR no se publica.
Causa: el asistente de servicios web no tiene forma de determinar si un servidor puede iniciarse o no.
Solución: en cualquier perspectiva donde
esté disponible la vista Servidores, pulse con el botón derecho del ratón en el servidor
remoto y seleccione Añadir y eliminar proyectos. Seleccione el
proyecto y añádalo al servidor.
- Los asistentes de servicios web pueden consumir el tipo de proyecto seleccionado:
Problema: si intenta ejecutar los asistentes de servicios web en un EAR que contiene un proyecto de cliente de aplicaciones Java EE con la opción Instalar servicio en servidor seleccionada, o un proyecto EJB que no contiene un EJB, no puede utilizar el asistente para generar el servicio web.
Causa: los asistentes de servicios web comprueban que pueden consumir el tipo de proyecto que se ha seleccionado en la página tres del asistente. Si no pueden, el asistente no permite continuar.
Solución: si cancela el asistente y repite la ejecución sin seleccionar Instalar servicio en servidor o añade un EJB al proyecto EJB, puede continuar en el asistente.
- Si selecciona un archivo WSIL en el espacio de trabajo y, a continuación, inicia el asistente de servicios web, el asistente indica que la selección no es válida porque debe seleccionarse un archivo WSDL en el archivo WSIL. Para resolverlo, pulse Examinar en el asistente de servicios web para seleccionar un archivo WSDL específico.
- El asistente de servicios web puede generar un error durante la creación de un servicio web si el nombre del proyecto web de destino incluye caracteres distintos de Latin-1. El problema se produce porque los generadores de código de los servicios web calculan los URL HTTP basándose en el nombre de proyecto y los caracteres que no sean Latin-1 no están permitidos en los URL HTTP. Para resolver este problema, utilice nombres de proyecto que sólo contengan caracteres Latin-1.
- Si tiene más de un proyecto EAR en el espacio de trabajo, selecciona Enterprise JavaBeans en un proyecto EJB e inicia el asistente de servicios web, el enterprise bean seleccionado no se seleccionará cuando se inicie el asistente. En el recuadro de diálogo Seleccionar implementación de servicio, el proyecto EAR que se selecciona es el primer EAR en el espacio de trabajo en orden alfabético, no el EAR asociado con el proyecto EJB que contiene el bean. Para resolver este problema, en el recuadro de diálogo Seleccionar implementación de servicio, seleccione manualmente el proyecto EAR que desee.
- Cuando selecciona supervisar el tráfico de servicios web en la primera página del asistente de servicios web, ocasionalmente la vista Supervisor TCP/IP no aparece automáticamente. Puede abrir la vista manualmente seleccionando . La solicitud y respuesta del servicio web se muestran en esta vista.
Problemas encontrados cuando se utiliza un entorno de ejecución JAX-WS de WebSphere y JAXB
Limitaciones cuando crea un cliente de servicio web
Cuando despliega un cliente de servicio web en un proyecto EJB, en la página de configuración del proxy, debe elegir el EJB en el que tendrá el ámbito el cliente de servicio web. Esta selección es un requisito definido por JSR-109, donde el nombre de componente de un elemento component-scoped-refs debe coincidir con el ejb-name de un EJB en el módulo.
Cuando hay al menos un EJB en el proyecto, no se producen errores. No obstante, si no hay EJB en el proyecto, las opciones en la página de configuración del proxy son editables y tienen un valor predeterminado igual al nombre de servicio del WSDL con el sufijo "EJB". Asimismo,el asistente del cliente muestra un aviso que indica que el despliegue está incompleto porque el cliente de servicios web no tiene el ámbito en un EJB existente. Puede solucionar este error creando un EJB con el mismo nombre que el nombre de componente utilizado en webservicesclient.xml.
No obstante, si opta por finalizar la creación del cliente cancelándola desde el asistente, el asistente no elimina el component-scoped-refs incompleto de webservicesclient.xml. Elimine el component-scoped-refs incompleto manualmente antes del nuevo despliegue.
Limitaciones de los JSP de ejemplo de servicio web
- Los JSP de ejemplo de servicio web no tienen soporte para los métodos que utilizan matrices o colecciones como parámetros. Estos métodos se omiten del panel Métodos de JSP de ejemplo.
Problemas del explorador de servicios web
- Cuando el explorador de servicios web carga los archivos WSDL que utilizan varios esquemas incorporados, se generan mensajes de aviso para los tipos a los que se hace referencia en estos esquemas. El mensaje de aviso es similar al siguiente: La referencia de tipo <nombre_tipo_completo> no está resuelta. Se trata de avisos, no de errores, y no interfieren con la capacidad del explorador de servicios web para iniciar operaciones, por lo que pueden ignorarse de forma segura.
- El explorador de servicios web no da soporte a la invocación de servicios web mediante la autenticación de servidores proxy que utilizan un protocolo distinto de la autenticación básica HTTP como, por ejemplo, NTLM. Si el explorador de servicios web no puede conectarse al servicio web elegido por este o cualquier otro motivo, aparece en el panel de resultados el error IWAB0135E: Se ha producido un error inesperado seguido de información sobre la anomalía tal como se ha recuperado de la respuesta HTTP. Para resolver este problema, cambie a un servidor proxy de autenticación básica HTTP.
- El explorador de servicios web tiene problemas cuando cambia desde la vista de origen a la vista de formulario si el esquema utiliza opciones que contienen secuencias. Si utiliza un elemento de opción en un complexType, la opción contiene dos o más elementos que incluyen una secuencia y cambia de la vista de formulario a la vista de origen, el explorador de servicios web no podrá convertir correctamente el fragmento XML correspondiente de la vista de origen a la vista de formulario sin perder datos. Para resolver este problema, inicie la secuencia desde la vista de formulario cuando se especifiquen inicialmente los datos. Cuando se produce esta configuración, no se recomienda utilizar la vista de origen. Si se utiliza la vista de origen, no cambie de nuevo a la vista de formulario.
- El explorador de servicios web importa WSDL sin resolver los URL de importación relativos. Cuando utiliza el explorador de servicios web, existe un problema cuando se importa un WSDL desde la página WSDL al espacio de trabajo. Si se elige la opción Importar como referencia de servicio a un documento WSIL, hace referencia al URL original del WSDL y, por lo tanto, todas las importaciones relativas son accesibles. Si se elige Importar documento WSDL y el archivo WSDL contiene importaciones relativas, estas importaciones ya no son accesibles, lo que deja la copia del WSDL difícil o imposible de procesar en otro lugar en las herramientas. Si hay importaciones relativas en el WSDL que está importando, utilice el método WSIL. Si necesita una copia del WSDL, compruebe manualmente si hay importaciones relativas después de la importación para resolver los enlaces rotos.
Problemas cuando utiliza la herramienta de línea de mandatos de los servicios web
- La importación de un EAR que contiene un cliente EJB generado por las herramientas de línea de mandatos utilizando Java EE 1.4 en el espacio de trabajo da como resultado errores de compilación. Para solucionar los errores, pulse con el botón derecho el proyecto EJB y seleccione
Propiedades. Vaya a Vía de construcción
Java y seleccione la pestaña Bibliotecas.
Elimine la entrada EJBClientProject/imported_classes(carpeta de clases).
Añada la carpeta de clases EJBServiceClient/imported_classes/Meta-inf/classess.
Pulse Aceptar.
- Después de importar un EAR
que contiene un cliente de aplicaciones generado por las herramientas de línea de
mandatos utilizando Java EE 1.4 en el espacio de trabajo, aparecerá un error
ClassNotFoundException cuando ejecute el cliente. Para solucionar
los errores, pulse con el botón derecho el proyecto de cliente de aplicaciones y
seleccione Propiedades. Vaya a Vía de construcción
Java y seleccione la pestaña Bibliotecas.
Elimine la entrada ApplicationClientProject/imported_classes(class
folder). Añada la carpeta de clases ApplicationClientProject/imported_classes/Meta-Inf/classess.
Pulse Aceptar.
- Las tareas Ant de servicios web que se dirigen al tiempo de ejecución de Axis manejan la generación de servicios web, pero no su despliegue. Como resultado, los servicios web de Axis que se crean utilizando las tareas Ant no son accesibles en el servidor en ejecución hasta que despliegue manualmente los servicios con el programa de utilidad AdminClient nativo de Apache Axis. Despliegue el archivo deploy.wsdd generado en los subdirectorios del directorio WebContent/WEB-INF del proyecto web en Axis manualmente utilizando la herramienta AdminClient de Axis. Consulte la sección Utilización del AdminClient en la Guía del usuario de Axis
1.4 para conocer más detalles.