Puede darse el problema de la imposibilidad de acceder al Registro UDDI privado de DB2 de WebSphere v6 después de desplegarlo sobre un Registro UDDI privado de WebSphere v6 existente. Al final del asistente de despliegue UDDI, la aplicación UDDI se ejecuta en el servidor pero no se reconocen las configuraciones del servidor. El síntoma sería que el EAR de UDDI no puede interactuar con el Registro UDDI de DB2. Esto significa que todos los mandatos ejecutados contra la Aplicación UDDI fallarán con el error: "Error al inicializar el nodo del registro". Esto incluye la adición de taxonomías definidas por el usuario que lanzaría una falta de Eje.
Soluciones:
1. Preventiva: antes de desplegar un Registro UDDI de DB2 de WebSphere v6, utilice el asistente UDDI para eliminar los Registros UDDI instalados anteriormente. Vuelva a invocar el asistente UDDI para desplegar un Registro UDDI privado de DB2 de WebSphere V6.
2. Para arreglar el registro instalado: si instaló un Registro UDDI de DB2 de WebSphere V6 sobre un registro anterior y encontró problemas, en la Consola administrativa del servidor puede detener la aplicación UDDIRegistry e iniciarla de nuevo.
Los valores de nivel de conformidad de WS-I AP que se encuentran en Ventana-> Preferencias-> Servicios Web -> Conformidad WS-I y en las propiedades del proyecto no surten efecto sobre la validación WS-I de WSDL cuando se establece en "suggest" o "require". El valor predeterminado de estas preferencias es "ignore".
No hay ninguna solución. El Documento de aserción de prueba de perfil de conexiones WS-I utilizado por el validador WSDL de WS-I para probar la conformidad del WSDL con el perfil no fue publicado por la organización WS-I a tiempo para incluirlo en este release del producto IBM Rational Developer. Cuando se publique el Documento de aserción de prueba, se expedirá un arreglo interino para habilitar la preferencia.
Si el servicio o el proyecto de cliente existe antes de lanzar el asistente Servicio Web o Cliente de servicio Web, los asistentes utilizarán siempre el EAR que ya contiene el proyecto existente, independientemente de lo que esté seleccionado en la página Configuración de despliegue de servicio o Configuración de entorno de cliente. Si no se ha añadido el proyecto existente a un EAR antes de lanzar cualquiera de los asistentes, los asistentes fallarán con el error siguiente:
IWAB0213E Error al iniciar el servidor
Detalles:
IWAB0213E Error al iniciar el servidor.
org.eclipse.core.runtime.CoreException: WebSphere v5 solo soporta aplicaciones de empresa J2EE 1.2 y 1.3.
en com.ibm.etools.websphere.tools.v51.internal.WASTestServerWorkingCopy.modifyModules(Fuente desconocido)
...Para solucionar esta limitación, asegúrese de que los proyectos para los servicios Web o los clientes de servicio Web ya se hayan añadido a un EAR antes de lanzar el asistente. La única excepción a esta regla son los proyectos cuyo destino es un servidor Tomcat ya que no necesitan añadirse a un EAR.
Si ha creado manualmente un supervisor para el servidor destino (utilizando Supervisión -> Propiedades.... en la pestaña Servidor) y después ejecuta el asistente Servicio Web y selecciona "Supervisar el servicio Web" en la primera página del asistente Servicio Web, el asistente puede fallar durante el proceso con el error siguiente:
IWAB0014E Se ha producido una excepción inesperada. null
java.lang.NullPointerException
en com.ibm.etools.webservice.consumption.command.common.CreateMonitorCommand.hasContentWebServices(CreateMonitorCommand.java:114)
...Para solucionar este problema, vuelva a ejecutar el asistente con la opción Supervisar el servicio Web inhabilitada o abra Supervisar -> Propiedades... en el servidor, elimine el supervisor y vuelva a ejecutar el asistente con la opción Supervisar el servicio Web habilitada.
En la primera página de los asistentes Servicio Web y Cliente de servicio Web hay dos tipos proxy de cliente disponibles: "Java proxy" (el valor predeterminado habitual) y "Función definida por el usuario de servicio Web". Si selecciona "Función definida por el usuario de servicio Web" e intenta finalizar el asistente o ir más allá de la página Selección de servicio Web, el asistente fallará con el error "IWAB0234E Se ha producido un error interno. Detalles: nulo".
Solución: no utilice los asistentes de servicio Web para crear una función definida por el usuario de servicio Web. En su lugar, seleccione Nuevo -> Otros -> Datos -> Función definida por el usuario de servicios Web.
El botón "Lanzar explorador de servicios Web" y el elemento de menú "Ejecutar > Lanzar el explorador de servicios Web" solo están disponibles en la perspectiva J2EE.
Abra la perspectiva J2EE y lance el Explorador de servicios Web o si procede, pulse el botón derecho del ratón sobre un documento WSDL o un servicio Web en el área de trabajo y seleccione Servicio Web -> Probar con Explorador de servicios Web.
En un caso práctico de creación de servicio Web URL o DADX para WebSphere Application Server v5 con la generación de proxy de servicio Web habilitada, el asistente fallará con un error parecido al siguiente:
IWAB0107E Se ha encontrado un error al intentar analizar el componente WSDL: entrada.
WSDLException: faultCode=PARSER_ERROR: Problema al cargar http://localhost:9080/SomeProject/SomeGroup/something.dtd/XSD: Conexión rechazada: connect: Excepción derivada
java.net.ConnectException: Connection refused: connect
...Este problema se produce porque el asistente no reinicia el servidor a tiempo para que el generador de código de cliente de servicio Web recupere WSDL o XSD del servidor. El problema puede evitarse como mínimo de dos formas:
- En el asistente Servicio Web, elija un servidor para albergar el cliente de servicio Web distinto del servidor que alberga el servicio Web.
- En el asistente Servicio Web, inhabilite la generación de código proxy. Ejecute el asistente Cliente de servicio Web por separado cuando finalice el asistente Servicio Web.
Al utilizar el asistente de servicio Web para crear un servicio Web para un servidor que todavía no existe, el asistente creará el servidor pero fallará con el error siguiente:
"IWAB0534E No se puede añadir el proyecto EAR a la Configuración del servidor."
Detalles: java.lang.IllegalArgumentException:
en java.lang.Throwable.<init>(Throwable.java:59)
en java.lang.Throwable.<init>(Throwable.java:73)
en org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
en org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
en org.eclipse.core.runtime.Status.setMessage(Throwable.java)
en org.eclipse.core.runtime.Status.<init>(Fuente desconocido)
en com.ibm.wtp.server.core.internal.ServerWorkingCopy.modifyModules(Fuente desconocido)
...Para solucionar el problema, vuelva a lanzar el asistente e inténtelo de nuevo. El asistente utilizará el servidor creado satisfactoriamente por el asistente anterior justo antes de la anomalía.
Al utilizar el asistente de servicio Web para crear un servicio Web en un proyecto destinado a un tipo de servidor que no se ha instalado, el asistente fallará con el mensaje siguiente:
IWAB0213E Error al iniciar el servidor.
org.eclipse.core.runtime.CoreException: El servidor llamado WebSphere v5.1 Test Environment @ localhost no se inició correctamente. Compruebe la existencia de mensajes de error en la consola.
en com.ibm.wtp.server.core.internal.Server.synchronousStart(Fuente desconocido)
...El problema se produce porque el asistente, en la página Configuración de despliegue del servidor o Configuración del entorno del cliente tomará por omisión el servidor destino del proyecto sin determinar primero si el servidor destino se ha instalado y está disponible. Esta situación surgirá probablemente al importar proyectos generados por otros usuarios con otras instalaciones del producto. La solución consiste en elegir explícitamente un servidor en la página Configuración de despliegue del servidor o Configuración del entorno del cliente que existe en el área de trabajo.
Después de importar el ejemplo StockQuoteAxis, si intenta añadir los proyectos StockQuoteAxis y StockQuoteAxisClient a un servidor Tomcat 4.0 ó 4.1, recibirá el mensaje "No hay proyectos que puedan añadirse o eliminarse del servidor". Si intenta ejecutar los JSP de ejemplo en un servidor Tomcat 4.0 ó 4.1, recibirá el mensaje "El servidor seleccionado no soporta la versión 1.4 de la especificación del módulo Web J2EE".
El problema se produce porque los proyectos Web StockQuoteAxis y StockQuoteAxisClient del ejemplo se han creado para ejecutarse en un tiempo de ejecución J2EE 1.4 / Servlet 2.4 y ni Tomcat 4.0, ni Tomcat 4.1 soportan la especificación Servlet 2.4. Hay dos soluciones:
- Ejecute el ejemplo en un servidor Tomcat 5.0.
- Siga las instrucciones "Hágalo usted mismo" en la Galería de ejemplos y seleccione que el destino de los proyectos Web sea Tomcat 4.0 ó 4.1.
Los JSP de ejemplo generados por el asistente para un cliente de servicio Web en un proyecto de EJB o de cliente de aplicación invocarán el proxy de cliente de servicio Web en un entorno no gestionado por contenedor. La configuración de seguridad para el cliente de servicio Web se pasará por alto, representando al cliente sin proteger y evitando que interactúe con el servicio Web protegido.
Para ejecutar los ejemplos de cliente protegido en el proyecto EJB:
Para ejecutar los ejemplos de cliente protegido en el proyecto Cliente de aplicación:
- Cree un método en el EJB de cliente.
- En el método, haga una llamada Web a través del proxy.
- Ejecute el EJB de cliente.
- Busque el archivo Main.java en el Cliente de aplicación.
- En el programa principal, haga una llamada Web a través del proxy.
- Ejecute el Cliente de aplicación.
Si crea un servicio Web ascendente J2EE 1.3 que contiene parámetros de tipos complejos, cada campo de la clase de parámetro que tiene un método de obtención se correlaciona con un elemento hijo bajo xsd:complexType en WSDL. Para ajustarse completamente a la especificación JAX-RPC 1.1 en J2EE 1.4, se ha cambiado este comportamiento. Cada propiedad read/write (según viene identificada por la clase java.beans.Introspector) se correlaciona con un elemento de xsd:complexType.
Al crear un servicio Web EJB de esqueleto en el que el proyecto EJB no existe todavía, el asistente de servicio Web creará el proyecto EJB y un JAR de cliente EJB asociado. Por ejemplo: EJBProjectName y EJBProjectNameClient. Hay un conflicto entre este nombre de proyecto JAR de cliente EJB y el nombre del proyecto cliente de servicio Web predeterminado seleccionado por el asistente de servicio Web cuando intenta crear el cliente de servicio Web. Esto genera errores en el proyecto de cliente de servicio Web. Si el proyecto de cliente de servicio Web es un proyecto Web, obtendrá errores en el EAR de cliente así como un "Error al copiar el JAR de programa de utilidad de servicio Web" si solicita al asistente que genere el recurso de prueba JSP de ejemplo.
La solución consiste en seleccionar un nombre para el proyecto de cliente de servicio Web que sea distinto de NombreProyectoEJBClient (cuando el proyecto EJB NombreProyectoEJB no existe todavía) o en crear el proyecto EJB antes de iniciar el asistente de servicio Web.
Si Websphere Application Server v5.0 o v5.1 tiene activada la seguridad, los escenarios de extremo a extremo de servicios Web tendrán un intervalo de tiempo de espera y generarán un mensaje de error que comienza por "No se ha podido reiniciar el módulo". *". Este error se puede ignorar sin problemas.
Para los tiempos de ejecución IBM SOAP e IBM WebSphere, debe colocar el proyecto EJB y su proyecto de direccionador en el mismo EAR tanto en escenarios de servicio Web EJB ascendentes como descendentes.
Una aplicación desplegada en Websphere Application Server v6 se puede visualizar pero no modificar a través de la consola de administración. Si se necesitan todas las posibilidades de la consola para un aplicación del producto Ration Developer, puede deseleccionar "Ejecutar recursos desde el espacio de trabajo" desde el editor del servidor UTE. Esencialmente, esto trata el UTE como un servidor remoto y se genera y publica un archivo .ear.
Si crea un servicio Web de esqueleto a partir de un archivo WSDL utilizando el tiempo de ejecución IBM SOAP y opta por generar un proxy en el mismo asistente, el proxy no podrá generarse o lo hará incorrectamente. La solución consiste en generar primero el servicio Web de esqueleto y utilizar después el WSDL para generar el cliente por separado.
En el release actual, el asistente de servicio Web no puede crear un servicio Web de esqueleto o un cliente de servicio Web utilizando un archivo WSDL protegido mediante la autenticación básica HTTP. Para solucionar este problema utilice un navegador y descargue el WSDL en el sistema de archivos físico y ejecute el asistente de servicio Web con dicha copia del archivo WSDL.
Después de ejecutar el habilitador de puntos finales de servicio Web para crear un punto final JMS, se genera el error siguiente en el ejb-jar.xml del proyecto de direccionador JMS: "CHKJ2802E: class com.ibm.ws.webservices.engine.transport.jms.JMSListenerMDB o uno de sus subtipos no se pueden reflejar. Compruebe la vía de acceso de clases." Este error se puede ignorar sin problemas.
Cuando finaliza la guía de aprendizaje para crear y desplegar un servicio Web desde un bean Java, se le solicita que importe el bean Java StockQuoteService desde una carpeta denominada Recursos. La estructura de carpetas de la carpeta Recursos es incorrecta y como resultado se creará un paquete que no coincidirá con el nombre del paquete del bean Java.
Para corregir esto, cuando importe los recursos necesarios, seleccione la carpeta StockQuote y deseleccione las carpetas que contiene. Cuando se haya importado la carpeta StockQuote, seleccione el paquete StockQuote, pulse con el botón derecho y seleccione Refactor > Redenominar y cambie el nombre del paquete StockQuote.
Cuando se suprime una taxonomía definida por el usuario desde la tabla del asistente de registro de UDDI privado, los datos de categoría se suprimen del registro pero tModel continúa allí. El explorador de servicios Web continúa mostrando la categoría suprimida cuando busca las categorías definidas por usuario.
Si se crean un EJB y un proyecto EJB mediante el soporte de anotación, se crean las interfaces local y remota del EJB en la subcarpeta gen/src del EJB o del cliente EJB en lugar de crearse en la carpeta ejbModule. El asistente de servicio Web generará código en la carpeta predeterminada lo que da como resultado que las interfaces local y remota se dupliquen. Esto no afecta la ejecución del servicio Web en un escenario sencillo, pero para evitar el error de compilación, los usuarios de la interfaz local y remota desde la carpeta gen/src a la carpeta ejbModule antes de iniciar el asistente de servicio Web.
Si intenta importar un ejemplo de servicio Web de WebSphere de la galería de ejemplos, (WebSphere StockQuote, Temperature Conversion o AddressBook) sin un servidor WebSphere V6, verá el aviso siguiente:
No se ha detectado el tiempo de ejecución del servidor WebSphere V6. Tendrá que establecer manualmente el tiempo de ejecución de destino del servidor para los proyectos importados después de instalar un servidor WebSphere V6.
Si suprime el ejemplo importado, añada manualmente un servidor WebSphere V6 y continúa reimportando, el ejemplo continuará importándose con errores de compilación debido a un error en el destino del servidor. Para solucionar el problema, suprima el ejemplo, concluya el área de trabajo, reinicie y vuelva a importar el ejemplo.
Si crea un cliente de servicio Web utilizando WebSphere Application Server v6.0, generará una excepción si utiliza un documento WSDL que no contiene ningún enlace SOAP.
Si tiene que volver a crear un servicio Web existente en el mismo proyecto utilizando un archivo WSDL modificado, los archivos Java generados no se renovarán. Esto puede dar como resultado errores de compilación o que no se modifiquen los archivos Java. La solución a este problema es hacer una copia de seguridad y suprimir todos los archivos Java generados antes de ejecutar el asistente de servicio Web esqueleto.
Se genera una excepción NullPointerException en UDDIPublish/UDDIUnpublish -profileName <nombre_archivo>, si no se especifica -inquiryUrl <url> antes de -profileName. Probablemente no necesita utilizar -profileName ya que el valor predeterminado ya coincide con el perfil instalado. Si no tiene que utilizar -profileName, debe especificar -inquiryUrl <url> antes que -profileName <nombre_perfil>.
Volver al archivo readme principal