How To: Call .NET SOE using Java client at 9.3.1
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.
- 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()
public string GetProgID()
//Make sure this is a unique ID
- Re-build and register the .NET SOE.
- From Java client, IServerObjectExtension can be obtained by calling IServerObjectExtension.findExtensionByTypeName and supplying the SOE name.