Migrar una extensión de objeto del servidor Java a 10.1

Migrar una extensión de objeto del servidor Java desarrollado para ArcGIS 10.1 for Server 10.0 a ArcGIS for Server 10.1 requiere algunas modificaciones al código de origen de las SOE. En este tema se analizan las modificaciones requeridas y se describe un asistente Eclipse nuevo para exportar las SOE Java. Además explica la ausencia de la herramienta SOEManager en ArcGIS 10.1.

Pasos:
  1. Modificar la anotación Java ServerObjectExtProperties de las SOE.

    Cuando se crea una SOE con el asistente Eclipse de creación de SOE, el código generado incluye una anotación Java llamada ServerObjectExtProperties, la cual incluye metadatos para la SOE. En ArcGIS 10.0, esta anotación tenía los atributos siguientes:

    • displayName—Nombre mostrado cómodo del SOE
    • description—Descripción multilínea del SOE
    • defaultSOAPCapabilities and allSOAPCapabilities—características del SOE
    • properties—Propiedades del SOE como nombre = value pairs
    • supportsMSD—Bandera para indicar que el SOE soporta servicios MSD-based

    En ArcGIS 10.1, con la introducción de los servicios de mapas basados en definición, el atributo supportsMSD ya no es necesario y se eliminó. Todos los demás atributos permanecen sin cambios. Por lo tanto, debe modificar su anotación Java ServerObjectExtProperties de la SOE en ArcGIS 10.0 para que se vea similar a la siguiente y poder trabajar en ArcGIS 10.1:

    @ServerObjectExtProperties(displayName = "Simple REST SOE",  	description = "My Simple REST Server Object Extension.", 	defaultSOAPCapabilities = "", allSOAPCapabilities = "",  properties = "")
    
  2. Modificar la SOE para utilizar servicios de mapas de ArcGIS 10.1 for Server 10.1.

    ArcGIS 10.1 no admite servicios de mapas basados directamente en documentos MXD pero admite servicios de mapa basados en las definiciones del servicio.

    Por consiguiente, utilizará la interfaz com.esri.arcgis.carto.IMapServerDataAccess para acceder a capas disponibles por medio de un servicio de mapas en ArcGIS 10.1. El siguiente fragmento de código demuestra cómo obtener un control para una clase de entidad expuesta como una capa por medio de un servicio de mapas basado en la definición del servicio:

    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/12/2013