Cette section décrit les problèmes connus liés au conteneur Web et les solutions associées.
Il se peut qu'un problème survienne lors de l'exécution des tests JAX—WS avec le JDK 1.6 fourni avec le Java EE SDK b33d. Les tests sont immédiatement abandonnés et le message suivant apparaît :
[wsimport] Exception in thread "main" java.lang.NoClassDefFoundError: \ com/sun/tools/ws/WsImport |
Cette erreur se produit même si le fichier webservices-tools.jar contient les classes com/sun/tools/ws/WsImport.class, com/sun/tools/ws/ant/WsImport.class et com/sun/tools/ws/ant/WsImport2.class. En outre, cet espace de travail test fonctionne normalement avec 1.5.0-10 JDK.
Copiez le fichier webservices-api.jar vers $JAVA_HOME/jre/lib/endorsed avant d'exécuter les tests JAX-WS.
JAXR utilise SAAJ pour envoyer des messages soap au registre. Sans IFR, les classes impl SAAJ se trouvent dans lib/webservices-rt.jar . Avec IFR, les classes SAAJ se trouvent toujours dans lib/webservices-rt.jar . En outre, le fichier saaj-impl.jar est stocké dans le répertoire /usr/share/lib. Ce fichier jar est récupéré par Enterprise Server et est prioritaire par rapport aux classes de webservices-rt.jar . Il ne dispose pas des autorisations de sécurité nécessaires pour envoyer des messages soap au registre des services Web. Le package doit être modifié afin que les fichiers jar disposent des autorisations nécessaires sous le répertoire /usr/share/lib ou que ceux-ci ne dépendent pas des fichiers jar de /usr/share/lib.
Ajoutez les éléments suivants au fichier server.policy :
grant codeBase "file:/usr/share/lib/saaj-impl.jar" { permission java.security.AllPermission; }; |
La tâche ant wscompile échoue pour JDK 6 Mise à jour 4. Pour chaque classe JAX-RPC API, le message d'erreur suivant s'affiche :
package package-name does not exist |
Avant d'exécuter la tâche ant wscompile, assurez-vous que javaee.jar est spécifié dans le chemin de classe, et non pas j2ee.jar.