-
Notifications
You must be signed in to change notification settings - Fork 24
Installation guide 4.x
Marten edited this page Jul 8, 2026
·
5 revisions
- Install Java
- Harvester was tested with JDK 25. There are several providers of JDK, including but not limited to AdoptOpenJDK.
- Install Tomcat 11.x
- Harvester was tested with Tomcat 11.0.22.
- For Harvester 2.7.0 onward, we have upgraded the h2 version. To upgrade to the new Harvester and keep your current brokers/tasks:
- Export tasks from your existing deployed Harvester
- Rename the harvester database (see jdbc.url in hrv.properties file for the location and name)
- Deploy Harvester 4.0.0
- Start the web application and import the saved brokers/tasks
- For Harvester 2.7.0 onward, if you install this version on a machine where an earlier version was hosted, you will need to rename the h2 database or put it in a different location. The 2.6.5 h2 database cannot be used with 2.7.0 onward.
- Deploy harvester.war to Tomcat (e.g. drop harvester.war into Tomcat webapps folder)
- Restart Tomcat if necessary
- Open Harvester application (e.g. http://localhost:8080/harvester)
- Run quick smoke test by following steps in Quick start guide
Starting from 2.6.1, you can configure various authentication options such as simple, ArcGIS Portal and LDAP in Harvester. To turn on security
- In harvester\WEB-INF\web.xml:20 – uncomment springSecurityFilterChain filter
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>ERROR</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
This is mandatory configuration and it is done in WEB-INF/classes/config/hrv.properties. It is recommended to use Environment variables.
Replace <server_host> with Harvester hostname.
# Authorization Server issuer URL (can be overridden by env var HRV_ISSUER)
security.issuer=${HRV_ISSUER:http://localhost:9000} # For local testing
OR
security.issuer=${HRV_ISSUER:https://<server_host>} # For Prod deployment
#Replace harvester with App context and localhost:8080 with server_hostname
security.ui.redirectUri=${HRV_UI_REDIRECTURI:http://localhost:8080/harvester/callback-popup.html}
# Admin client for API Access
security.api.admin.clientId=${HRV_API_ADMIN_CLIENTID:admin}
# Keep {bcrypt} prefix if you store a BCrypt-hashed secret. For plain text, prefix is {noop}. Override with HRV_API_ADMIN_CLIENTSECRET
security.api.admin.clientSecret=${HRV_API_ADMIN_CLIENTSECRET:{noop}test}
# Read-only API client (confidential)
security.api.read.clientId=${HRV_API_READ_CLIENTID:user}
# Keep {bcrypt} prefix if you store a BCrypt-hashed secret. For plain text, prefix is {noop}. Override with HRV_API_READ_CLIENTSECRET
security.api.read.clientSecret=${HRV_API_READ_CLIENTSECRET:{noop}test}}
In harvester\hrv\config.js
secure:true
Default authentication will be Sign with Application Account (Simple Authentication).
Harvester authentication can be configured to use either a single provider—such as Simple or LDAP—or a combination of two providers, for example, Simple/LDAP along with ArcGIS Authentication.
- To configure Harvester to use simple authentication, see Security configuration simple
- To configure Harvester to use LDAP authentication, see Security configuration LDAP
- To configure Harvester to use ArcGIS authentication, see Security configuration ArcGIS
- Setup a local instance of ArcGIS JavaScript API
- Please visit https://developers.arcgis.com/javascript/3/jshelp/intro_accessapi.html for more information about the API, and download and installation instructions.
- Setup a local instance of ArcGIS geometry service that is shared with everyone
- Update ..\harvester\WEB-INF\classes\config\hrv.properties
- Replace url for geometry service
geometry.service.url=http://servername/arcgis/rest/services/Utilities/Geometry/GeometryServer
- Update ..\harvester\index.html
before:
...
<link rel="stylesheet" href="https://js.arcgis.com/4.30/esri/css/main.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.36/esri/themes/calcite/dijit/calcite.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.36/esri/themes/calcite/esri/esri.css">
...
<script src="//js.arcgis.com/3.22/"></script>
...
<body class="calcite">
after:
...
<link rel="stylesheet" href="http://servername/arcgis_js_api/library/4.30/4.30s/esri/css/esri.css">
<link rel="stylesheet" href="http://servername/arcgis_js_api/library/3.36/3.36/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://servername/arcgis_js_api/library/3.36/3.36/esri/css/esri.css">
...
<script src="//servername/arcgis_js_api/library/3.36/3.36/"></script>
...
<body class="claro">
- AdoptOpenJDK 25
- Copy harvest.jar to a destination folder
- Follow instructions in Command line interface to run the tool.