En esta sección, se describen problemas conocidos relacionados con el contenedor web, junto con las soluciones pertinentes.
Puede que existan problemas al ejecutar las pruebas de JAX—WS con JDK 1.6 incluido con Java EE SDK b33d. Las pruebas se interrumpen inmediatamente con el siguiente mensaje:
[wsimport] Exception in thread "main" java.lang.NoClassDefFoundError: \ com/sun/tools/ws/WsImport |
Este error se produce incluso cuando webservices-tools.jar contiene com/sun/tools/ws/WsImport.class, com/sun/tools/ws/ant/WsImport.class y com/sun/tools/ws/ant/WsImport2.class. Además, el mismo espacio de trabajo de las pruebas funciona sin problemas con 1.5.0-10 JDK.
Copie el webservices-api.jar a $JAVA_HOME/jre/lib/endorsed antes de ejecutar las pruebas de JAX-WS.
JAXR utiliza SAAJ para enviar mensajes soap al registro. En el caso "no-IFR", las clases SAAJ impl se encuentran en lib/webservices-rt.jar. En el caso IFR, las clases SAAJ todavía están en lib/webservices-rt.jar. Además, saaj-impl.jar se encuentra en el directorio /usr/share/lib. Este archivo jar ha sido elegido por Enterprise Server y tiene prioridad sobre las clases de webservices-rt.jar. Este archivo jar no tiene los permisos de seguridad necesarios para enviar mensajes soap al registro de los servicios web. <Check Alignment of PHs>El empaquetado debería modificarse para conceder permisos a los jars del directorio /usr/share/lib o para no depender de los jars de /usr/share/lib.
Agregue lo siguiente al archivo server.policy:
grant codeBase "file:/usr/share/lib/saaj-impl.jar" { permission java.security.AllPermission; }; |
La tarea de ant wscompile falla con JDK 6 Update 4. Para cada clase de JAX-RPC API, aparece el siguiente mensaje de error:
package package-name does not exist |
Antes de ejecutar la tarea ant wscompile asegúrese de que se especifica javaee.jar en la ruta de clase, y no j2ee.jar.