The app-schema Vocab CQL function is documented as supporting a vocabulary properties file "URI" that can be absolute or relative to the mapping file, but only an absolute file path works. See:
Vocabulary properties file paths relative to the containing mapping file should be supported if possible. In any case, the documentation must match the implementation.
------- Forwarded Message --------
Subject: RE: [Geoserver-users] app-schema mapping.properties file location
Date: Tue, 17 Nov 2015 21:59:22 +0000
From: Bruce Simons
To: Ben Caradoc-Davies
CC: email@example.com, Jody Garnett
Putting the absolute path worked without the chmod:
<value>Vocab(METHOD, 'C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\geoserver\data\workspaces\om\OM_Observation\mapping.properties')</value>
Can you report this as a bug change request for me?
CSIRO Land and Water/ Environmental Information Infrastructures
T: +61 3 9252 6514 M: +61 475 954 391
PO Box 56, Highett, Victoria, 3190
From: Ben Caradoc-Davies
Sent: Wednesday, 18 November 2015 5:41 AM
To: Simons, Bruce
Cc: firstname.lastname@example.org; Jody Garnett
Subject: Re: [Geoserver-users] app-schema mapping.properties file location
in a nutshell: ugly and not as documented, but it should work if you use an absolute path.
The documentation claims that the properties file can be an absolute path or relative to the mapping file, but I had a look in the implementation and I see no evidence of handling of paths relative to the mapping file:
Even the test coverage is relative to the home directory of the GeoTools module. Whatever you pass as the properties file "URI" (and it is not a
URI) is used raw as a path; if relative it is relative to the current working directory of the process (not useful), and if absolute it is the absolute path on the filesystem (ugly but workable).
For example, if GeoServer is running in Tomcat 7 on Debian and you put the mapping file in the root of the data directory, you might have something like this:
You may also need to change the permissions to make sure Tomcat can read the file:
chmod 644 /var/lib/tomcat7/webapps/geoserver/data/mapping.properties
On 17/11/15 16:50, Bruce Simons wrote:
> The Geoserver app-schema documentation (http://docs.geoserver.org/latest/en/user/data/app-schema/cql-functions.html) has the example:
> <OCQL>Vocab(ABBREVIATION, '/test-data/mapping.properties')</OCQL>
> Where does this mapping.properties file go in the geoserver/data directory structure?
> Wherever I put it I get the error:
> "Error applying mapping with targetAttribute om:observedProperty Argument "value" should not be null"
> Bruce Simons
> Information Modeller
> CSIRO Land and Water/ Environmental Information Infrastructures
> T: +61 3 9252 6514 M: +61 475 954 391 PO Box 56, Highett, Victoria, 3190