In diesem Abschnitt werden die bekannten Probleme mit Webcontainern sowie ihre Lösungen beschrieben.
Beim Ausführen von JAX–WS-Tests mit JDK 1.6 (im Lieferumfang von Java EE SDK b33d enthalten) treten möglicherweise Problem auf. Die Tests werden umgehend mit der folgenden Fehlermeldung abgebrochen:
[wsimport] Ausnahme in Thread "main" java.lang.NoClassDefFoundError: \ com/sun/tools/ws/WsImport |
Dieser Fehler tritt auf, obwohl die webservices-tools.jar-Datei folgende Elemente enthält: com/sun/tools/ws/WsImport.class, com/sun/tools/ws/ant/WsImport.class und com/sun/tools/ws/ant/WsImport2.class. Darüber hinaus funktioniert derselbe Testarbeitsbereich unter Verwendung von 1.5.0-10 JDK problemlos.
Kopieren Sie die Datei webservices-api.jar vor dem Ausführen der JAX-WS-Tests in das Verzeichnis $JAVA_HOME/jre/lib/endorsed .
JAXR verwendet SAAJ, um SOAP-Meldungen an die Registrierung zu senden. Wenn nicht IFR verwendet wird, befinden sich die SAAJ-Klassen impl unter lib/webservices-rt.jar . Bei Einsatz von IFR befinden sich die SAAJ-Klassen weiterhin unter lib/webservices-rt.jar . Darüber hinaus befindet sich saaj-impl.jar im Verzeichnis /usr/share/lib. Diese JAR-Datei wird von Anwendungsserver verwendet und hat Vorrang vor Klassen aus webservices-rt.jar. Diese JAR-Datei verfügt nicht über die erforderlichen Sicherheitsberechtigungen, um SOAP-Meldungen an die Web Services-Registrierung zu senden. Das Paket sollte so geändert werden, dass den JAR-Dateien unter /usr/share/lib Berechtigungen zugewiesen werden oder dass keine Abhängigkeit von den JAR-Dateien in /usr/share/lib besteht.
Fügen Sie der server.policy-Datei Folgendes hinzu:
grant codeBase "file:/usr/share/lib/saaj-impl.jar" { permission java.security.AllPermission; }; |
Die Ant-Task wscompile schlägt für Java EE SDK 9.1 Update 1 in JDK 6 Update 4 fehl. Für jede JAX-RPC API-Klasse wird die folgende Fehlermeldung angezeigt:
package Paketname does not exist |
Stellen Sie vor dem Ausführen der Ant-Aufgabe wscompile sicher, dass javaee.jar im Klassenpfad angegeben ist, nicht j2ee.jar.