HOW TO

Call .NET SOE using Java client at 9.3.1

Last Published: April 25, 2020

Summary

Prior to ArcGIS Server 9.3.1, to use a Server Object Extension (SOE), since ArcGIS Server Java Edition does not support SOE natively, as a workaround, an SOE would have to be created in .NET, the .dll would have to be registered, and it would have to be used in Java by generating proxies using proxy-gen.

But at 9.3.1, if the same workflow as 9.2/9.3 is used and the SOE is called using IServerObjectExtensionManager.findExtensionByTypeName, an exception is thrown in the Java code.

This can be solved by following the instructions below.

Procedure



  1. In your .NET SOE class, implement ESRI.ArcGIS.esriSystem.IClassID. For its two member function, put the code as:

    #region IClassID Members

    public Guid GetCLSID()
    {
    return System.Guid.NewGuid();
    }

    public string GetProgID()
    {
    //Make sure this is a unique ID
    return "mysoetestid";
    }

    #endregion
  2. Re-build and register the .NET SOE.
  3. From Java client, IServerObjectExtension can be obtained by calling IServerObjectExtension.findExtensionByTypeName and supplying the SOE name.

Article ID:000010747

Software:
  • ArcGIS Server

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options

Discover more on this topic