Auflösen von Zugriffsbeschränkungen für Klassen aufgrund von Bibliothekseinschränkungen
In einem Versuch, Java 1.4-Code, der von IBMs WSDL2Java generiert wurde, mit Java 5 ohne Neugenerierung zu kompilieren In den Stubs sind Benutzer auf einen Zugriffsbeschränkungsfehler in Eclipse gestoßen. Dieser Fehler ist darauf zurückzuführen, dass aufgrund einer Einschränkung der erforderlichen Bibliothek rt.jar kein Zugriff auf den QName-Typ möglich war.
Um dieses Problem zu beheben, gibt es mehrere mögliche Lösungen:
Neu erstellen Stubs:
Eine mögliche Möglichkeit besteht darin, die Stubs mit der neuesten Version von WSDL2Java neu zu generieren. Während dieser Ansatz die Kompatibilität mit der verwendeten Java-Version gewährleistet, kann er zu zusätzlichen Komplikationen führen, wenn der generierte Code erheblich vom Original abweicht.
Klassenpfad neu anordnen:
Eine Alternative Eine bewährte Lösung besteht darin, die Build-Pfad-Einstellungen des Projekts zu ändern:
Dieser Prozess ordnet den Klassenpfad neu an, gibt den entsprechenden Klassen Vorrang und löst das Problem mit der Zugriffsbeschränkung.
Duplikate ausschließen JARs:
Stellen Sie für eine umfassendere Lösung sicher, dass doppelte JAR-Dateien mit identischen Klassen vom Projekt ausgeschlossen werden. Dies verhindert Konflikte und stellt sicher, dass die richtigen Klassen verwendet werden.
Im bereitgestellten Beispiel wird das Problem durch den Ausschluss der Dateien axis-saaj-1.4.jar und saaj-api-1.3.jar gelöst, die beide sind enthalten die Klasse javax.xml.soap.SOAPPart.
Das obige ist der detaillierte Inhalt vonWie werden Java-Zugriffsbeschränkungsfehler behoben, wenn IBM WSDL2Java-generierter Code mit Java 5 verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!