com.esri.core.io.EsriServiceException: Not Found when trying to show objects layer

7704
7
07-20-2012 01:52 AM
SergeiRiaguzov
New Contributor
Hi,

I'm using ArcGIS to add two dynamic layer (one for the world map and yet another for Moscow, Russia). Then I have a dynamic layer with objects (like restaurants and such) for Moscow which I also add:
 
     
       _baseWorldLayer = new ArcGISTiledMapServiceLayer( "http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer");
      _baseMoscowLayer = new ArcGISTiledMapServiceLayer( "http://atlas.mos.ru/ArcGIS/rest/services/EA/EA_Basemap/MapServer");
      _objectsLayer = new ArcGISDynamicMapServiceLayer("http://atlas.mos.ru/ArcGIS/rest/services/EA/Objects_map/MapServer");

       _mapView.addLayer(_baseWorldLayer);
       _mapView.addLayer(_baseMoscowLayer);
       _mapView.addLayer(_objectsLayer);


I then zoom to moscow:

public static final Location MOSCOW_LOCATION = new Location(55.752962D, 37.623196D);

 _mapView.setOnStatusChangedListener(new OnStatusChangedListener() {
    @Override
    public void onStatusChanged(Object source, STATUS status) {
       if (OnStatusChangedListener.STATUS.INITIALIZED == status && source == _mapView) {
          // Show Moscow region on start                  
          // TODO: what is scale parameter?
          _mapView.zoomToScale(new Point(Constants.MOSCOW_LOCATION.longitude(),
                Constants.MOSCOW_LOCATION.latitude()),
                0.2f);
       }
    }
});


Now scrolling through the map I see a lot of:

  
E/ArcGIS  (12117): ImageCallback.onError
E/ArcGIS  (12117): com.esri.core.io.EsriServiceException: Not Found
E/ArcGIS  (12117):  at com.esri.core.internal.b.a.b.a(Unknown Source)
E/ArcGIS  (12117):  at com.esri.core.internal.b.a.a.a(Unknown Source)
E/ArcGIS  (12117):  at com.esri.core.internal.a.a.g.b(Unknown Source)
E/ArcGIS  (12117):  at com.esri.android.map.ags.ArcGISDynamicMapServiceLayer.getImage(Unknown Source)
E/ArcGIS  (12117):  at com.esri.android.map.DynamicLayer$1.run(Unknown Source)
E/ArcGIS  (12117):  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
E/ArcGIS  (12117):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/ArcGIS  (12117):  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/ArcGIS  (12117):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/ArcGIS  (12117):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/ArcGIS  (12117):  at java.lang.Thread.run(Thread.java:1096)


and also no images in the objects layer are shown.

Why can this happen? Same exactly code for the iOS does the thing..
0 Kudos
7 Replies
SergeiRiaguzov
New Contributor
This appears to be a problem with the layer, since after checking iOS and WP7 code doesn't work either, so this is not a problem with the library.
0 Kudos
SergeiRiaguzov
New Contributor
Looks like this is a problem with the Android version of the library after all. The following code works nicely on WinPhone:

ArcGISTiledMapServiceLayer*BaseMap = new ArcGISTiledMapServiceLayer();
BaseMap.Url = "http://atlas.mos.ru/ArcGIS/rest/services/EA/EA_Basemap/MapServer";
BaseMap.ID = "BaseMap";
MyMap.Layers.Add(BaseMap);

ArcGISDynamicMapServiceLayer Objects = new ArcGISDynamicMapServiceLayer();
Objects.ID = "Objects";
Objects.Visible = true;
Objects.Url = "http://atlas.mos.ru/ArcGIS/rest/services/EA/Objects_map/MapServer";
MyMap.Layers.Add(Objects);

((ArcGISDynamicMapServiceLayer)MyMap.Layers["Objects"]).VisibleLayers = new int[]{65};
((ArcGISDynamicMapServiceLayer)MyMap.Layers["Objects"]).Refresh();


The following code also works on iOS:

AGSTiledMapServiceLayer *baseMoscowLayer = [[[AGSTiledMapServiceLayer alloc] initWithURL:[NSURL URLWithString:kBaseMoscowLayerUrlString]] autorelease];
UIView<AGSLayerView> *baseMoscowLayerView = [self.mapView addMapLayer:baseMoscowLayer withName:kBaseMoscowLayerName]; 
baseMoscowLayerView.drawDuringPanning = YES;
baseMoscowLayerView.drawDuringZooming = YES;
    
AGSDynamicMapServiceLayer *objectsLayer = [[[AGSDynamicMapServiceLayer alloc] initWithURL:[NSURL URLWithString:kObjectsLayerUrlString]] autorelease];
objectsLayer.visibleLayers = [NSArray arrayWithObjects:[NSNumber numberWithInt:65], nil];
objectsLayer.layerDefinitions = self.parkingsDefinitions;
[self.mapView addMapLayer:objectsLayer withName:kObjectsLayerName];


Both those code snippets show museums objects on the map on WinPhone and iOS. However the exact same code for Android ends up with the exception:

E/ArcGIS *(27953): ImageCallback.onError
E/ArcGIS *(27953): com.esri.core.io.EsriServiceException: Not Found
E/ArcGIS *(27953):  * *at com.esri.core.internal.b.a.b.a(Unknown Source)
E/ArcGIS *(27953):  * *at com.esri.core.internal.b.a.a.a(Unknown Source)
E/ArcGIS *(27953):  * *at com.esri.core.internal.a.a.g.b(Unknown Source)
E/ArcGIS *(27953):  * *at com.esri.android.map.ags.ArcGISDynamicMapServiceLayer.getImage(Unknown Source)
E/ArcGIS *(27953):  * *at com.esri.android.map.DynamicLayer$1.run(Unknown Source)
E/ArcGIS *(27953):  * *at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
E/ArcGIS *(27953):  * *at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/ArcGIS *(27953):  * *at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/ArcGIS *(27953):  * *at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/ArcGIS *(27953):  * *at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/ArcGIS *(27953):  * *at java.lang.Thread.run(Thread.java:1096)


and no museums are shown even though I'm seeing GET requests in sniffer like those:

GET http://31.13.60.167/ArcGIS/rest/services/EA/Objects_map/MapServer/export?f=image&bbox=4150239.66999977%2C7454656.409465957%2C4231797.947144982%2C7558388.343210025&bboxSR=102100&size=320%2C407&format=png&transparent=true&dpi=159&imageSR=102100&layers=hide%3A1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C14%2C15%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C27%2C28%2C29%2C30%2C31%2C32%2C33%2C34%2C35%2C36%2C37%2C38%2C40%2C41%2C42%2C43%2C44%2C45%2C46%2C47%2C48%2C49%2C50%2C51%2C53%2C54%2C55%2C56%2C57%2C58%2C59%2C60%2C61%2C62%2C63%2C64%2C66%2C67%2C68%2C69%2C70%2C71%2C72%2C73%2C74%2C75%2C76%2C77%2C79%2C80%2C81%2C82%2C83%2C84%2C85%2C86%2C87%2C88%2C89%2C90%2C92%2C93%2C94%2C95%2C96%2C97%2C98%2C99%2C100%2C101%2C102%2C103%2C105%2C106%2C107%2C108%2C109%2C110%2C111%2C112%2C113%2C114%2C115%2C116%2C118%2C119%2C120%2C121%2C122%2C123%2C124%2C125%2C126%2C127%2C128%2C129%2C131%2C132%2C133%2C134%2C135%2C136%2C137%2C138%2C139%2C140%2C141%2C142%2C144%2C145%2C146%2C147%2C148%2C149%2C150%2C151%2C152%2C153%2C154%2C155%2C157%2C158%2C159%2C160%2C161%2C162%2C163%2C164%2C165%2C166%2C167%2C168%2C170%2C171%2C172%2C173%2C174%2C175%2C176%2C177%2C178%2C179%2C180%2C181%2C183%2C184%2C185%2C186%2C187%2C188%2C189%2C190%2C191%2C192%2C193%2C194%2C196%2C197%2C198%2C199%2C200%2C201%2C202%2C203%2C204%2C205%2C206%2C207%2C209%2C210%2C211%2C212%2C213%2C214%2C215%2C216%2C217%2C218%2C219%2C220%2C222%2C223%2C224%2C225%2C226%2C227%2C228%2C229%2C230%2C231%2C232%2C233%2C235%2C236%2C237%2C238%2C239%2C240%2C241%2C242%2C243%2C244%2C245%2C246%2C248%2C249%2C250%2C251%2C252%2C253%2C254%2C255%2C256%2C257%2C258%2C259%2C261%2C262%2C263%2C264%2C265%2C266%2C267%2C268%2C269%2C270%2C271%2C272%2C274%2C275%2C276%2C277%2C278%2C279%2C280%2C281%2C282%2C283%2C284%2C285%2C287%2C288%2C289%2C290%2C291%2C292%2C293%2C294%2C295%2C296%2C297%2C298%2C300%2C301%2C302%2C303%2C304%2C305%2C306%2C307%2C308%2C309%2C310%2C311%2C313%2C314%2C315%2C316%2C317%2C318%2C319%2C320%2C321%2C322%2C323%2C324%2C326%2C327%2C328%2C329%2C330%2C331%2C332%2C333%2C334%2C335%2C336%2C337%2C339%2C340%2C341%2C34


so the images from the layer are downloaded on the phone but not shown. I've decompiled the ArcGIS library but it is hard to understand something from the obfuscated code (I cannot find the exact place where com.esri.core.internal.b.a.b.a ends up with en exception).

Here are the exact steps to reproduce the problem:


  1. install ArcGIS plugin as described here: http://help.arcgis.com/en/arcgismobile/10.0/apis/android/help/#/Installing_the_SDK/01190000002m00000...

  2. create hello world example as described here: http://help.arcgis.com/en/arcgismobile/10.0/apis/android/help/#/Hello_World_Map/011900000005000000/

  3. change this:

  4. map.addLayer(new ArcGISTiledMapServiceLayer("" +
    "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"));
    

    to this:
    ArcGISTiledMapServiceLayer baseMoscowLayer = new ArcGISTiledMapServiceLayer("http://atlas.mos.ru/ArcGIS/rest/services/EA/EA_Basemap/MapServer");
    ArcGISDynamicMapServiceLayer objectsLayer = new ArcGISDynamicMapServiceLayer("http://atlas.mos.ru/ArcGIS/rest/services/EA/Objects_map/MapServer", new int[] {65});
    objectsLayer.setVisible(true);
    map.addLayer(baseMoscowLayer);
    map.addLayer(objectsLayer);
    

  5. run


effect: no objects shown on map and exceptions in log.

Maybe someone having access to the library code (not obfuscated) can tell me where exactly the exception is thrown?

I'll appreciate any help.
0 Kudos
AlejandroCañas
New Contributor
Hi,

I'm having the same problem when adding a ArcGISDynamicMapServiceLayer over a ArcGISTiledMapServiceLayer. Did you find any solution?

Thanks in advance.
0 Kudos
BrianMulcahy
New Contributor III
I am getting this exact same problem as well.

Adding to it I get everything plus

com.esri.core.io.EsriServiceException: Image width is not in range. Valid range is from 1 to 2048.


What does this mean?
0 Kudos
SalihYalcin
New Contributor III

What about this issue ? Is this solved yet or still continue ? I'm facing this issue too. When I want to addlayer to map, it gives me esriserviceexception error and map tiles load slowly.

0 Kudos
WillCrick
Occasional Contributor

I think this post is old and has many unrelated issues (most of them point to the service end point not being available rather than a bug in the api). Please create a new post showing the exact issue you are facing  and the code you are using.

Thanks

Will

0 Kudos
SalihYalcin
New Contributor III

Thanks for commenting, I'll create new post and I'll mention you

0 Kudos