PROBLEM

Bestimmte Java-APIs in Java Development Kit (JDK) 8, die jedoch in späteren JDK-Versionen entfernt wurden, werden in Serverobjekterweiterungen (SOEs)/Serverobjekt-Interceptoren (SOIs) für ArcObjects SDK for Java nicht geladen

Last Published: August 30, 2021

Beschreibung

Wenn eine Serverobjekterweiterung (SOE) oder ein Serverobjekt-Interceptor (SOI) für ArcObjects SDK for Java bestimmte Java-APIs referenziert, die in JDK 8 vorhanden sind, jedoch in späteren JDK-Versionen entfernt wurden (beispielsweise Klassen in den Modulen "java.xml.ws", "java.corba" oder "java.transaction"), führt der Zugriff auf den Endpunkt des Service, der den Code der SOEs oder SOIs auslöst, die die Klassen aus diesen Modulen referenzieren, möglicherweise zu einer Fehlermeldung. Die folgenden schwerwiegenden Meldungen werden in Serverprotokollen angezeigt:

LevelUhrzeitMeldungQuelle
SEVEREJul 1, 2021, 10:03:03 AMDie Instanz des Service "USA.MapServer'" konnte die Anforderung nicht verarbeiten. AutomationException: sun/misc/BASE64EncoderUSA.MapServer
SEVEREJul 1, 2021, 10:03:00 AMDie Instanz des Service "USA.MapServer'" konnte die Anforderung nicht verarbeiten. AutomationException: org/omg/CORBA/StringHolderUSA.MapServer
SEVEREJul 1, 2021, 10:02:57 AMDie Instanz des Service "USA.MapServer'" konnte die Anforderung nicht verarbeiten. AutomationException: javax/xml/ws/Service$ModeUSA.MapServer

Das SOE- oder SOI-Projekt kann erfolgreich erstellt werden, und es tritt kein Kompilierungsfehler auf. Das Problem tritt nur während der Laufzeit auf, wenn die SOE oder der SOI in Version 10.7 oder höher von ArcGIS Server bereitgestellt wird.

Ursache

Ab ArcGIS Server 10.7 wurde die Service-Runtime, die ArcMap-basierten Services zugrunde liegt, von Java 8 auf Java 11 aktualisiert, obwohl ArcObjects Java-SOEs und -SOIs noch mit JDK 8 erstellt werden müssen. Daher werden in 10.7 und höheren Versionen von ArcGIS Server die Java-Klassen, die aus JDK 11 entfernt wurden, aber in ArcObjects-SOEs oder -SOIs referenziert werden, von der in Java 11 ausgeführten Service-Runtime nicht wie in früheren Versionen von ArcGIS Server automatisch geladen.

Eine Liste der Java-Module, die in JDK 11 entfernt wurden, finden Sie unter Removal of Java EE and CORBA Modules

Lösung oder Problemumgehung

Wenn Ihre ArcObjects Java-SOEs oder -SOIs vor ArcGIS Server 10.7 funktioniert haben, während in höheren Versionen von ArcGIS Server ähnliche Probleme auftreten, vergewissern Sie sich zuerst, dass die in der Protokollmeldung genannte Java-Klasse aus einem Java-Modul stammt, das aus JDK 11 entfernt wurde. Wenn dies der Fall ist, haben Sie zwei Möglichkeiten:

Option 1: Hinzufügen der JAR-Dateien der aus JDK 11 entfernten Java-Module als Abhängigkeiten in Ihrem SOE- oder SOI-Projekt und Exportieren der SOE bzw. des SOI mit Abhängigkeiten

Schrittweise Anweisungen zum Erstellen von Paketen für Drittanbieter-Abhängigkeiten in SOEs oder SOIs finden Sie unter How to export Java SOEs with dependencies. Auf diese Weise kann die Service-Runtime die Java-Klassen aus der in der SOE bzw. in dem SOI gepackten JAR-Datei laden, und das Problem sollte behoben sein.

Option 2: Migrieren der ArcObjects-SOE oder des ArcObjects-SOI zur Kompilierung mit Enterprise SDK

Da Enterprise SDK das Erstellen von Java-SOEs und -SOIs mit JDK 11 für ArcGIS Pro-basierte Services unterstützt, können Sie auch Ihre ArcObjects-SOEs oder -SOIs zur Erstellung mit Enterprise SDK migrieren. Um die Klassen aus den in JDK 11 entfernten Java-Modulen zu verwenden, müssen Sie diese Module in Ihrem SOE- oder SOI-Projekt als Drittanbieter-Abhängigkeiten hinzufügen. Andernfalls kann das SOE- oder SOI-Projekt nicht kompiliert werden, und der Java-Compiler zeigt Fehlermeldungen für die in JDK 11 nicht vorhandenen Klassen an, es sei denn, Sie fügen nicht relevante Abhängigkeiten hinzu. Dadurch kann dieses Problem beim Laden von Java-Klassen bei der Kompilierung anstatt während der Laufzeit erkannt werden.
 

Artikel-ID: 000026040

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln