This topic describes how to create, build, and deploy a REST server object extension (SOE) under the Maven framework using IntelliJ. It also describes how to consume the SOE from the ArcGIS Server Services Directory.
- Create the REST SOE project
- Build the REST SOE project
- Deploy the SOE to ArcGIS Server
- Consume the REST SOE
The SOE that you will create in this topic is also provided as a sample, named Simple REST SOE in the ArcGIS Enterprise SDK(..\
).
Create the REST SOE project
To create a REST SOE using IntelliJ, complete the following steps:
-
Ensure that ArcGIS Enterprise SDK, Java, and Maven are all installed on your development environment. See more details at the Installation section.
-
Launch IntelliJ and click File.
-
Click New and Select Project.
-
Choose Maven Archetype on the left menu.
-
Give name for the project and choose the location you would like to use.
-
Ensure the project SDK is set to the supported JDK before you proceed.
-
Keep the Catalog as Internal.
-
For Archetype: Click the Add button on the right, type the following values in the Add Archetype wizard, and then click Add:
- GroupId:
com.esri.arcgis.enterprise.sdk
- ArtifactId:
rest-soe-archetype
- Version:
11.3.0
(use11.2.0
for 11.2.0 SDK and11.0
for 11.0 SDK)
The
rest-soe-archetype
is now added. - GroupId:
-
To set up the Advance Settings before creating the SOI, click Advanced Settings.
-
Confirm the information in the parameters are right and approriate and click Create: If you see any warnings, you can ignore them for now as long as the project successfully generates the
entsdksamples.soe
package andJava
class under theSimple RESTSOE src\main\java
folder. You will address those warnings during project build. Continue to build the REST SOE project now.
Verifying the servicetype
Since the Rest SOE project has already been created, please confirm which type of SOE you would like to generate: Map Service or Image Service. If you are working with a Map Service, simply keep the default settings shown in the screenshot below, where servicetype = "MapService". However, if you need an Image Service, update servicetype to "ImageService".
Build the REST SOE project
Building an SOE project will package the project's classes, dependencies, and resources into a .soe
file, which can be deployed to ArcGIS Server. Since it's a Maven project, the Maven build lifecycle must be followed to build the REST SOE. Read more about project build.
You can build the SOE project in either the Maven tool window or the Terminal tool window.
Because the project is created from rest-soe-archetype
, it automatically loads the boilerplate code that implements a ready-to-use SOE. For now, you can customize the display
and description
of the SOE and leave the rest of the code as is.
-
Open the SOE class
Java
, located in theSimple RESTSOE src\main\java
folder (see A in the example above). -
Set the
display
andName description
to beJava Simple RES
(see B).T SOE -
Now follow these steps to build the project.
-
To build the project in the Maven tool window, do the following:
a. Click the Maven tab on the right side of IntelliJ (see C).
b. Expand
simplerestsoe
. You should see Lifecycle, Plugins and Dependencies listed.c. If you don't see Dependencies, click the Reimport All Maven Projects button (see D) on the far left of the tool bar in the Maven tool window.
d. Now you should see Dependencies, and com.esri.arcgis.enterprise.sdk:arcgis-enterprise-sdk:version is listed as one of the dependencies.
e. Expand Lifecycle and click install. You can also click clean and click install for a clean build of the project.
f. The project is built successfully with detailed log messages in the Run tool window (see E).
-
Alternatively, to build the project in the Terminal tool window, do the following:
a. Click the Terminal tab at the bottom of IntelliJ (see F).
b. Ensure the directory is pointing to the project's root directory.
c. Type
mvn clean install
. This command does a clean build of the project, and you should seeBuild Success
.
-
-
Once the build finishes, a new folder named
target
appears in the project's base directory, and you can find the SOE filesimplerestsoe.soe
in this folder (see G).
If you would like to add third-party libraries as dependencies, you can add them to the project's pom.xml
(see H). The POM contains project configuration information, such as the Java compiler (JDK) used, plug-ins used, project's dependencies, and project's version. Learn more about POM dependency management.
Deploy the SOE to ArcGIS Server
The SOE you created must be deployed to ArcGIS Server and enabled on a map service. To learn how to deploy an SOE, see the Deploy extensions topic in the ArcGIS Enterprise SDK help. Note that the term “deploy” is used here to mean uploading the .soe file to ArcGIS Server and registering it as an extension to map services. To learn how to enable an SOE on a map service, see the Enable extensions topic of the ArcGIS Enterprise SDK help.
Consume the SOE using the Services Directory
To consume the SOE using the Services Directory, complete the following steps:
- Open the Services Directory at
https
.:// <server name >:6443/arcgis/rest/services/ - Navigate to your map service’s root page (its URL ends with “/MapServer”) and scroll down to the Supported Extensions section.
- Click the
Java
hyperlink. This brings up the SOE’s root resource web page, which lists name and description of the root resource, along with theSimple RESTSOE layers
andserviceproperties
sub-resource in the Child Resources section and theget
operation in the Supported Operations section.Layer Count By Type - Click on the
layers
sub-resource. It displays information about all layers in JSON format. - Navigate back to the root resource page and click on the
serviceproperties
sub-resource. It displays several service configuration properties. - Navigate back to the root resource page and click on the
get
operation. EnterLayer Count By Type feature
in the layerType field and click the GET button. The JSON response will include the number of feature layers. Test this operation with other types, such asraster
,dataset
, orall
. - Undeploy the SOE when you're finished. To learn how to undeploy the SOE, see the Deploy extensions topic of the ArcGIS Enterprise SDK help.