I'm testing some new versions of GeoSciML schemas that have not yet been published yet and so am using the technique described at http://docs.geoserver.org/stable/en/user/data/app-schema/app-schema-resolution.html to put them in the WEB-INF\classes\org\geosciml\schemas directory in my web app.
I'm using nightly build 2013-07-05 of geoserver and app-schema plugin.
The schemas I am using are available at https://www.seegrid.csiro.au/subversion/GeoSciML/branches/3.2.0/schemas/ .
I'm using the configuration at https://www.seegrid.csiro.au/subversion/GeoSciML/cgi-reference-dataset/tags/2013-05-15/services/geoserver/postgis/data/workspaces/ with some edits to change to the v3.2 schemas. I've replaced all 3.1 occurrences in namespace and schemaUri 's with 3.2, added Namespace elements for gsmlu and http://xmlns.geosciml.org/Utilities/3.2 and changed the cgu directory in workspaces to gsmlu and changed cgu to gsmlu in the contained files.
The above works and I can retrieve features. However, if I try to use one of the new elements introduced in the change from v3.1 to v3.2
by changing the configuration file https://www.seegrid.csiro.au/subversion/GeoSciML/cgi-reference-dataset/tags/2013-05-15/services/geoserver/postgis/data/workspaces/gsmlgu/gsmlgu_GeologicUnit/gsmlgu_CompositionPart.xml to the version attached which uses gsmlu:GSML_QuantityRange (which is declared in https://www.seegrid.csiro.au/subversion/GeoSciML/branches/3.2.0/schemas/cgiutilities/3.2/cgiUtilities.xsd) instead of swe:QuantityRange then the geoserver.log file shows the following error on start up:
---
2013-07-25 11:05:38,541 INFO [org.geoserver] - Loaded store 'gsmlgu_GeologicUnit', enabled
2013-07-25 11:05:38,541 INFO [org.geoserver] - Loaded data store 'gsmlgu_GeologicUnit'
2013-07-25 11:05:38,681 WARN [geotools.jdbc] - No primary key or unique index found for gsmlem_color.
2013-07-25 11:05:38,697 WARN [data.complex] - http://www.opengis.net/gml/3.2:MeasureType has no super type
2013-07-25 11:05:38,697 WARN [data.complex] - http://www.opengis.net/gml/3.2:LengthType has no super type
2013-07-25 11:05:38,697 WARN [data.complex] - http://www.opengis.net/gml/3.2:AngleType has no super type
2013-07-25 11:05:38,697 WARN [data.complex] - http://www.opengis.net/gml/3.2:ScaleType has no super type
2013-07-25 11:05:38,931 WARN [geotools.jdbc] - No primary key or unique index found for gsmlem_lithology.
2013-07-25 11:05:38,947 WARN [data.complex] - http://www.opengis.net/gml/3.2:MeasureType has no super type
2013-07-25 11:05:38,947 WARN [data.complex] - http://www.opengis.net/gml/3.2:LengthType has no super type
2013-07-25 11:05:38,947 WARN [data.complex] - http://www.opengis.net/gml/3.2:AngleType has no super type
2013-07-25 11:05:38,947 WARN [data.complex] - http://www.opengis.net/gml/3.2:ScaleType has no super type
2013-07-25 11:05:39,181 WARN [data.complex] - http://www.opengis.net/gml/3.2:MeasureType has no super type
2013-07-25 11:05:39,181 WARN [data.complex] - http://www.opengis.net/gml/3.2:LengthType has no super type
2013-07-25 11:05:39,181 WARN [data.complex] - http://www.opengis.net/gml/3.2:AngleType has no super type
2013-07-25 11:05:39,181 WARN [data.complex] - http://www.opengis.net/gml/3.2:ScaleType has no super type
2013-07-25 11:05:39,416 WARN [data.complex] - No top level element found in schemas: {http://xmlns.geosciml.org/Utilities/3.2\}GSML_QuantityRange
2013-07-25 11:05:39,416 WARN [complex.config] - Error creating app-schema data store for '_gsmlgu_proportion', caused by: No top level element found in schemas: {http://xmlns.geosciml.org/Utilities/3.2\}GSML_QuantityRange
2013-07-25 11:05:39,416 WARN [org.geoserver] - Error connecting to 'gsmlgu_GeologicUnit'. Disabling.
2013-07-25 11:05:39,431 INFO [org.geoserver] -
java.io.IOException: java.util.NoSuchElementException: No top level element found in schemas: {http://xmlns.geosciml.org/Utilities/3.2\}GSML_QuantityRange
at org.geotools.data.complex.config.AppSchemaDataAccessConfigurator.createFeatureTypeMappings(AppSchemaDataAccessConfigurator.java:290)
at org.geotools.data.complex.config.AppSchemaDataAccessConfigurator.buildMappings(AppSchemaDataAccessConfigurator.java:203)
at org.geotools.data.complex.config.AppSchemaDataAccessConfigurator.buildMappings(AppSchemaDataAccessConfigurator.java:175)
at org.geotools.data.complex.AppSchemaDataAccessFactory.createDataStore(AppSchemaDataAccessFactory.java:96)
at org.geotools.data.complex.AppSchemaDataAccessFactory.createDataStore(AppSchemaDataAccessFactory.java:93)
at org.vfny.geoserver.util.DataStoreUtils.getDataAccess(DataStoreUtils.java:107)
at org.geoserver.catalog.ResourcePool.getDataStore(ResourcePool.java:546)
at org.geoserver.catalog.impl.DataStoreInfoImpl.getDataStore(DataStoreInfoImpl.java:37)
at org.geoserver.config.GeoServerLoader.readCatalog(GeoServerLoader.java:355)
at org.geoserver.config.GeoServerLoader.readCatalog(GeoServerLoader.java:226)
at org.geoserver.config.DefaultGeoServerLoader.loadCatalog(DefaultGeoServerLoader.java:46)
at org.geoserver.config.GeoServerLoader.postProcessBeforeInitialization(GeoServerLoader.java:114)
at org.geoserver.config.GeoServerLoaderProxy.postProcessBeforeInitialization(GeoServerLoaderProxy.java:58)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1448)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.geoserver.platform.GeoServerContextLoaderListener.contextInitialized(GeoServerContextLoaderListener.java:22)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.util.NoSuchElementException: No top level element found in schemas: {http://xmlns.geosciml.org/Utilities/3.2\}GSML_QuantityRange
at org.geotools.data.complex.config.FeatureTypeRegistry.getElementDeclaration(FeatureTypeRegistry.java:166)
at org.geotools.data.complex.config.FeatureTypeRegistry.getDescriptor(FeatureTypeRegistry.java:144)
at org.geotools.data.complex.config.AppSchemaDataAccessConfigurator.getTargetDescriptor(AppSchemaDataAccessConfigurator.java:301)
at org.geotools.data.complex.config.AppSchemaDataAccessConfigurator.createFeatureTypeMappings(AppSchemaDataAccessConfigurator.java:265)
... 101 more
2013-07-25 11:05:39,431 INFO [org.geoserver] - Loaded feature type 'GeologicUnit', enabled
2013-07-25 11:05:39,431 INFO [org.geoserver] - Loaded feature type 'gsmlgu_GeologicUnit'
---
and a request like http://localhost/geoserver20130705_gsml32/ows?service=WFS&version=2.0.0&request=GetFeature&typename=gsml:MappedFeature&
gives the error message:
---
<ows:ExceptionReport version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://xxxx.geosciml.org/xxxxxxxx/schemas/ows/1.1.0/owsAll.xsd"><ows:Exception exceptionCode="NoApplicableCode"><ows:ExceptionText>java.lang.RuntimeException: Failed to get property: {http://www.opengis.net/wfs/2.0\}boundedBy
Failed to get property: {http://www.opengis.net/wfs/2.0\}boundedBy
Exception occurred while computing bounds
Error applying mapping with targetAttribute gsml:specification
Feature type http://xmlns.geosciml.org/GeologicUnit/3.2:GeologicUnit not found. Has the data access been registered in DataAccessRegistry? Available: [_gsml_observationMethod, http://xmlns.geosciml.org/GeoSciML-Core/3.2:MappedFeature, _gsml_mf_positionalAccuracy, gsmlga_eventProcess, http://xmlns.geosciml.org/GeologicAge/3.2:GeologicEvent, _gsmlga_eventEnvironment, http://xmlns.geosciml.org/GeologicAge/3.2:GeologicHistory, http://xmlns.geosciml.org/GeologicStructure/3.2:Contact, http://xmlns.geosciml.org/GeologicStructure/3.2:ShearDisplacementStructure, gsmlem_color, gsmlem_lithology, http://xmlns.geosciml.org/EarthMaterial/3.2:RockMaterial\]</ows:ExceptionText></ows:Exception></ows:ExceptionReport>
---
Any ideas?
Marcus Sen
This message (and any attachments) is for the recipient only. NERC is subject to the Freedom of Information Act 2000 and the contents of this email and any reply you make may be disclosed by NERC unless it is exempt from release under the Act. Any material supplied to NERC may be stored in an electronic records management system.
gsmlgu_CompositionPart.xml (4.98 KB)