Skip to content

FAQ

Frequently asked questions about service interceptors are listed below.

Are service interceptors a replacement for Server Object Interceptors (SOIs)?

No, service interceptors are not a replacement for SOIs. When choosing the right option for you, remember that it doesn't have to be one or the other. Server interceptors and SOIs are designed to work together and can fulfill different purposes in your organization.

How do service interceptors differ from Server Object Interceptors (SOIs)?

SOIs are designed to extend map and image services only and allow direct access to internal service objects through ArcObjects APIs. On the other hand, service interceptors are service-type agnostic (supporting all REST-based services) and operate at the REST handler level without access to the underlying data or service internals.

SOIs support development in Java and .NET, whereas service interceptors only support Java. Additionally, SOIs require knowledge of ArcObjects, whereas service interceptors are lightweight and easier to implement using standard Java practices. For more information, see Relationship between service interceptors and SOIs.

Can I intercept any type of service published to ArcGIS Enterprise using service interceptors?

Yes, service interceptors can intercept any REST-based services published to ArcGIS Enterprise.

Can I intercept SOAP or OGC (for example, WMS and WFS) services using service interceptors?

No, service interceptors currently support only REST-based traffic.

What programming languages are supported for developing service interceptors?

Java is the only supported programming language for developing service interceptors in ArcGIS Enterprise.

Which Java version is required for developing Service Interceptors?

Service Interceptors must be developed using Java JDK 17.

Once registered with ArcGIS Server, can I disable the service interceptor temporarily without unregistering it?

Yes, you can temporarily disable a service interceptor without having to unregister it. This allows you to suspend its behavior for testing or troubleshooting purposes without needing to remove the configuration. Refer to this topic for more information.

Can I chain multiple service interceptors together?

Yes, ArcGIS Server supports chaining of multiple service interceptors, allowing them to execute in a defined order. This enables you to modularize logic, for example, separating authentication, logging, and data transformation, into distinct interceptors. Refer to this topic why chaining is important and how to edit chaining order for more details.

Can I access the data source of a hosted feature service from within a service interceptor?

No, service interceptors do not have access to underlying data sources. They operate strictly at the HTTP request and response level.

Can I use ArcObjects APIs (for example, IWorkspaceFactory and IWorkspaceEdit) in service interceptors?

No, ArcObjects-based APIs are not available to service interceptors. If your use case requires direct access to geodatabases or service internals, consider using a Server Object Interceptor (SOI) instead.

Will enabling a service interceptor impact the performance of services?

Service interceptor execution is efficient; however, performance may vary depending on your implementation.

ArcGIS Server’s framework introduces minimal overhead when routing requests through service interceptors. However, you should consider the following:

  • Avoid long-running, resource-intensive, or asynchronous logic within service interceptors.

  • Perform your own performance testing in a staging environment to evaluate the impact of your custom logic.

  • Keep the service interceptor code lightweight and optimized for quick execution.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.