"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

Geofabric GeoServer Deployment Guide

Overview

This deployment guide has been created to help BoM publish the Geofabric Data Product via GeoServer Web Feature Service (WFS) as Simple Feature Level 1 (SF1) / complex feature.

GeoServer Installation

Please refer to SISS GeoServer deployments procedure.

Note : Recommended GeoServer version for this deployment - any build after 2012-05-15. There's a fix require for WMS base on WFS Complex Feature avaialble starting this build.

Create Views and Materialized Views

  1. Download the db script from https://www.seegrid.csiro.au/subversion/ASRDC/BOM/AHGF/dbScript/CreateTableViewScript_V2.sql.
  2. Run the sql script from pgAdmin III and successfully running the script will create the following views and materialized views in the public schema:
    • Views : ahgfcontractedcatchment, ahgflink and ahgfnode
    • Materialized Views : mv_ahgfcontrcatedcatchment, mv_ahgflink and mv_ahgfnode

GeoServer Configuration Files

  1. Download the GeoServer configuration files from https://www.seegrid.csiro.au/subversion/ASRDC/BOM/AHGF/GeoServerConfig/geofabric.zip, extract the zip file to the data directory you define in GeoServer web.xml file.
  2. The zip files comes with pre-downloaded ahgf_hr_catchments.xsd schema from https://www.seegrid.csiro.au/subversion/ASRDC/BOM/AHGF/schema/hr_catchments/1.0/ahgf_hr_catchments.xsd in app-schema-cache folder, any changes to the original schema, you need to remove the app-schema-cache folder and restart GeoServer to let it download the latest schema again. (Note : Internet access is required). If internet access is not available, copy the latest schema and replace the copy in app-schema-cache folder manually.

Configuration Steps

  1. Create (if doesn't exist) or update %GEOSERVER_INSTANCE_HOME%/WEB-INF/classes/app-schema.propertiesas below:
    # PostGIS connection parameters
    geofabric.dbtype = postgis
    geofabric.jndi = jdbc/geofabric
    geofabric.schema = geofabric
    # The codeSpace URL/URN 
    gmlname.codespace = http://www.ietf.org/rfc/rfc2616
    # AHGFContractedCatchment wfs uri
    ahgfcontractedcatchment.uri = http://www.bom.gov.au/resource/feature/ahgfcontractedcatchment/bom/
    # AHGFLink wfs uri
    ahgflink.uri = http://www.bom.gov.au/resource/feature/ahgflink/bom/
  2. Append the following text into the end of %GEOSERVER_INSTANCE_HOME%/WEB-INF/web.xmlinside the web-app element:
    <resource-ref>
        <description>Geofabric Datasource</description>
        <res-ref-name>jdbc/geofabric</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
  3. JNDI connection will be used in this deployment guide, you need to move "postgresql-8.4-701.jdbc3.jar" from %GEOSERVER_INSTANCE_HOME%/WEB-INF/lib to %TOMCAT_HOME%/lib folder
  4. Replace all %PLACEHOLDERS% with appropriate values and append the following text into the end of %TOMCAT_HOME%/conf/server.xml or %TOMCAT_HOME%/conf/context.xml:
    <Context
        path="/%GEOSERVER_INSTANCE_NAME%"
        docBase="%GEOSERVER_INSTANCE_HOME%"
        crossContext="false"
        reloadable="false">
        <Resource
            name="jdbc/geofabric"
            auth="Container"
            type="javax.sql.DataSource"
            url="jdbc:postgresql://%DB_HOSTNAME%:%DB_PORT%/%DB_NAME%"
            driverClassName="org.postgresql.Driver"
            username="%DB_USERNAME%"
            password="%DB_PASSWORD%"
            maxActive="-1"
            maxIdle="10"
            minIdle="0"
            maxWait="10000"
            minEvictableIdleTimeMillis="300000"
            timeBetweenEvictionRunsMillis="300000"
            numTestsPerEvictionRun="20"
            poolPreparedStatements="true"
            maxOpenPreparedStatements="100"
            testOnBorrow="true"
            validationQuery="select version();" />
    </Context>
  5. Before restarting TomCat, you might need to reset the write permissions on the data directory.
      Example, setting up permissions for the geoserver data directory
      # sudo chown -R tomcat6:tomcat6 /usr/local/geofabric/data

Test

  1. To Ensure all the feature types are up and running, point your web browser to http://%SERVER_HOST_NAME%/%GEOSERVER_INSTANCE_NAME%/wfs?request=GetCapabilities (Note : GetCapabilitiesisnotfunctioningwell in IE) and check that you have the following feature type available :
    • ahgf_cn:AHGFContractedCatchment
    • ahgf_cn:AHGFLink
  2. To test the ahgf_cn:AHGFContractedCatchment feature type :
    • http://%SERVER_HOST_NAME%/%GEOSERVER_INSTANCE_NAME%/wfs?service=WFS&version=1.1.0&request=getFeature&typeName=ahgf_cn:AHGFContractedCatchment&maxFeatures=1
  3. To test the ahgf_cn:AHGFLink feature type :
    • http://%SERVER_HOST_NAME%/%GEOSERVER_INSTANCE_NAME%/wfs?service=WFS&version=1.1.0&request=getFeature&typeName=ahgf_cn:AHGFLink&maxFeatures=1
    • ahgf_cn:AHGFNode is in line in this feature

Correct Location for the app-schema

  1. For the purpose of demonstration, ASRDC has uploaded the ahgf_hr_catchments.xsd to https://www.seegrid.csiro.au/subversion/ASRDC/BOM/AHGF/schema/hr_catchments/1.0/ahgf_hr_catchments.xsd.
  2. BoM should identify the correct location to upload this schema and when the location is final, point the schemaUri in all the GeoServer config files (AHGFContractedCatchment.xml, AHGFLink.xml and AHGFNode.xml) found in the data/workspaces directory to the correct location :
    <targetTypes>
       <FeatureType>
          <schemaUri>https://www.seegrid.csiro.au/subversion/ASRDC/BOM/AHGF/schema/hr_catchments/1.0/ahgf_hr_catchments.xsd</schemaUri>
       </FeatureType>
    </targetTypes>

Enter WFS Metadata

  1. It is important to maintain correct metadata for each feature type available for GeoNetwork to auto harvest the correct information.
  2. You can refer to the following links for more information :
Topic revision: r10 - 13 Aug 2014, BenCaradocDavies