Migration d'une extension d'objet serveur Java vers la version 10.1

La migration d'une extension d'objet serveur Java développée pour ArcGIS Server 10.0 vers ArcGIS for Server 10.1 nécessite des modifications au niveau du code source de l'extension d'objet serveur. 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 ArcGIS 10.1.

Etapes :
  1. 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

    Dans ArcGIS 10.1, avec l'introduction des services de carte basés sur définition de service, l'attribut supportsMSD n'est plus requis et a é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 :

    @ServerObjectExtProperties(displayName = "Simple REST SOE", 
    	description = "My Simple REST Server Object Extension.",
    	defaultSOAPCapabilities = "", allSOAPCapabilities = "", 
    properties = "")
    
  2. Modifiez l'extension d'objet serveur pour utiliser les services de carte ArcGIS Server 10.1.

    ArcGIS 10.1 ne prend pas en charge les services de carte basés directement sur les documents MXD ; mais il prend en charge les services de carte basés sur des définitions de service.

    Par conséquent, utilisez l'interface com.esri.arcgis.carto.IMapServerDataAccess pour accéder aux couches disponibles via un service de carte dans ArcGIS 10.1. 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));
    
9/18/2013