En esta sección, se describen problemas conocidos relacionados con el contenedor web, junto con las soluciones pertinentes.
Puede tener problemas al ejecutar las pruebas JAX—WS con el JDK 1.6 que incluye Java EE SDK b33d. Las pruebas se cancelan inmediatamente mostrando 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 Application 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. 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; }; |