Migration d'une extension d'objet serveur Java 10.0 vers des versions ultérieures
Les extensions d'objet serveur java (SOE) que vous développez avec ArcGIS 10.1 peuvent être utilisées avec la version 10.2 et versions ultérieures. Toutefois, la migration d'un SOE développé pour ArcGIS Server 10.0 vers 10.1 et versions ultérieures nécessite des modifications au niveau du code source du SOE. Cette rubrique aborde les modifications requises et présente le nouvel Assistant Eclipse d'exportation des SOE Java. Elle explique également l'absence de l'outil SOEManager dans les versions 10.1 et ultérieures d'ArcGIS.
-
Modifiez l'annotation Java ServerObjectExtProperties de votre SOE.
Lorsqu'une extension d'objet serveur est créée via l'Assistant de création de SOE Eclipse, le code généré inclut une annotation Java appelée ServerObjectExtProperties, qui contient les métadonnées de l'extension d'objet serveur. Dans ArcGIS 10.0, cette annotation présentait les attributs suivants :
- displayName - Nom complet convivial de l'extension d'objet serveur
- description - Description en plusieurs lignes de l'extension d'objet serveur
- defaultSOAPCapabilities et allSOAPCapabilities - Fonctionnalités de l'extension d'objet serveur
- properties - Propriétés de l'extension d'objet serveur comme nom = paires de valeurs
- supportsMSD - Drapeau indiquant que l'extension d'objet serveur prend en charge les services basés sur MSD
Depuis l'introduction des services de carte basés sur des définitions de service dans ArcGIS 10.1 et versions ultérieures, l'attribut supportsMSD n'est plus requis. Il a donc été supprimé. Tous les autres attributs restent inchangés. Par conséquent, vous devez modifier l'annotation ServerObjectExtProperties de votre SOE Java ArcGIS 10.0 afin qu'elle soit similaire à l'annotation suivante, pour fonctionner dans ArcGIS 10.1 et versions ultérieures :
@ServerObjectExtProperties(displayName = "Simple REST SOE", description = "My Simple REST Server Object Extension.", defaultSOAPCapabilities = "", allSOAPCapabilities = "", properties = "")
- Modifiez l'extension d'objet serveur pour utiliser les services de carte ou d'imagerie d'ArcGIS Server 10.1 et des versions ultérieures.
ArcGIS 10.1 et les versions ultérieures ne prennent pas en charge les services de carte ou d'imagerie basés directement sur les documents MXD. En revanche, les définitions de service sont utilisées sur le serveur principal.
Par conséquent, utilisez l'interface com.esri.arcgis.carto.IMapServerDataAccess pour accéder aux couches disponibles via un service de carte ou d'imagerie dans ArcGIS 10.1 et les versions ultérieures. L'extrait de code suivant montre comment obtenir un descripteur de classe d'entités publiée en tant que couche via un service de carte basé sur une définition de service :
IServerObjectHelper soh = . . .; //accessible to SOEs at runtime IMapServerDataAccess mapServerDataAccess = (IMapServerDataAccess)soh.getServerObject(); IMapServer3 ms = (IMapServer3) mapServerDataAccess; String mapName = ms.getDefaultMapName(); int layerId = . . .;//integer id of the feature layer you are interested in accessing FeatureClass fc = new FeatureClass(mapServerDataAccess.getDataSource(mapName, layerId));