• Skip to primary navigation
  • Skip to main content

MarkHing.com

Carefully Crafted Content

  • Home
  • Smallworld GIS
  • Software
  • Investing
  • Random Musings
  • Blog
  • About
    • Privacy Policy
    • Terms of Service
    • GNU General Public License
  • Contact Me
  • Show Search
Hide Search

How to Run GSS Locally without Docker and Kubernetes

Mark Hing · Jun 2, 2021 ·

GeoSpatial Server (GSS) is an industrial-strength application that provides service-based integration technology for Smallworld products. Part of what puts the, “strength,” in, “industrial-strength,” is the fact it is deployed using Docker containers managed and orchestrated by Kubernetes.

However deployment can be a complicated affair, and in many cases we simply want to develop services without a full deployment.

Fortunately you can run GSS locally without too much effort. Here are the steps.

  • Install GSS locally on top of your Smallworld Core installation.
  • Change security settings for the GSS folder to ensure correct permissions are granted.
  • Set the following Environment variables. You can set them any way you like (as long as you do so before starting the GSS application), but putting them in gis_aliases is a good option. Here’s an example stanza for the Cambridge DB application (remember to change the hard-coded paths to match your installation).
 start_gss_camdb_vertx:
	title = Smallworld Geospatial Server Cambridge DB Vertx Application
	session = gss:gss_camdb_vertx_open
	CONFIG_FOR_STARTUP = magikCLIConfig
	product = gss
	SW_CONSTRUCTION_PACK_DIR = C:/Temp
	SW_ACE_DB_DIR      = %SMALLWORLD_GIS%/../cambridge_db/ds/ds_admin
	splash_screen      = %SMALLWORLD_GIS%\sw_core\resources\base\bitmaps\smallworld_gis_splash.png

	EIS_RESOURCES_PATH = D:\Beeble\docs\GE\GSS
	BIFROST_URL = https://localhost:443
	RABBIT_CONFIG_MODULE_NAME = gss_basic_vertx_application
	RABBIT_CONFIG_FILE_NAME = empty_rabbit_config.xml
	RABBITMQ_PATH = localhost
	SW_GSS_UAA_CLIENT_ID = client_user
	SW_GSS_UAA_CLIENT_SECRET = client_user
	SW_GSS_UAA_TOKEN_URL = https://localhost:7771/uaa/oauth/token
	args = -cli
	SW_LAUNCH_JAVA_MEMORY = -Xmx2000m

If you want to change the port on which GSS will listen, edit the routes XML file (e.g. \gss\geospatial_server\modules\gss_basic_camdb_vertx_application\resources\base\data\gss_basic_camdb_vertx_config.xml) and change the port_number property value (shown in line 8 below) to the desired port (the default is 7771).

<?xml version="1.0" encoding="UTF-8"?>
<!-- Configuration of the GeoSpatial Server test application on CAMDB -->
<!-- This application includes only GSS http services and only http plugin -->
<config base="gss_basic_vertx_application.gss_basic_vertx_config">

	<plugins>
		<plugin name="http" class_name="http_service_request_handler_plugin">
			<property name="port_number" value="7771"/>
			<property name="http_server" value="http_service_request_handler"/>
			<property name="load_balancer_url" value="${BIFROST_URL}"/>
			<property name="resources_root_dir" value="${EIS_RESOURCES_PATH}"/>
			<paths>
				<path string="beeble-api">
					<service string="trillian" method="get" provider="beeble_service.dispatch_service" db_spec_name=""/>
					<service string="zaphod" method="get" provider="beeble_service.dispatch_service" db_spec_name=""/>
				</path>
				
		</plugin>

	</plugins>
</config>

You can also use an environment variable for the value of the port (e.g. value=”${LOCAL_GSS_PORT}”) and set it in a stanza in the gis_aliases file. Doing this will allow you to start multiple local GSS sessions listening on different ports simply by starting different sessions.

  • Start the Smallworld session.
  • Start the GSS Service Provider application.
Start the GSS Service Provider Application

And that’s it. You’ll have a GSS session running locally at http://localhost:7771 (or whatever port you chose) and can start developing GSS Services.

Smallworld

About Mark

Mark Hing, a Value Investing and Smallworld GIS specialist, created the Automatic Investor software and is the author of "The Pragmatic Investor" book.

(Buy the book now on Amazon.ca)
(Buy the book now on Amazon.com)

As President of Aptus Communications Inc., he builds cutting-edge FinTech applications for individual investors. He has also used his software expertise to architect, develop and implement solutions for IBM, GE, B.C. Hydro, Fortis BC, ComEd and many others.

When not taking photographs or dabbling in music and woodworking, he can be found on the ice playing hockey -- the ultimate sport of sports.

linkedin   Connect with Mark

All views expressed on this site are my own and not those of my employer.

Copyright © 2023 Aptus Communications Inc. All Rights Reserved.