Ryan, the web administration interface does not support the app-schema plugin. Attempting to use the web administration interface to publish app-schema layers will generate confusing and unhelpful errors. Note that the app-schema plugin *does* honour WFS service setting configured through the web interface.
Once an app-schema data store has been configured by editing files, it is available for use on the the next GeoServer restart. No administrative actions are required. Have you tried a WFS query for your type? Note also that the DataStore/id in your mapping file is local to that file and distinct from the datastore id in datastore.xml. Kind regards, Ben. On 08/06/13 00:09, Ryan Moody wrote: > Hello, > > I’d be very grateful if someone could assist me with the following problem: > > I’m trying to publish a GML layer whose data is sourced from a PostGIS > database and mapped to a GMLAS via the GeoServer app-schema plugin. > Unfortunately, on publishing the layer, I get the following > DataSourceException: > > “http://www.envitia.com/schemas/1.0:TownSurveyType not found. Available: > [http://www.envitia.com/schemas/1.0:TownSurvey]” > > Given below are my GML Application Schema, my app-schema mapping file, > and the call stack for the DataSourceException. > > Can anyone assist me in identifying the cause of the issue please? > > Best Regards, > > Ryan > > = = = > > GML Application Schema > > = = = > > <?xml version="1.0" encoding="UTF-8"?> > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:gml="http://www.opengis.net/gml/3.2" > xmlns:town="http://www.envitia.com/schemas/1.0" > targetNamespace="http://www.envitia.com/schemas/1.0" > elementFormDefault="qualified"> > > <xs:import namespace="http://www.opengis.net/gml/3.2" > schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/> > > <xs:element name="TownSurvey" > type="town:TownSurveyType" substitutionGroup="gml:AbstractFeature"/> > > <xs:complexType name="town:TownSurveyType"> > > <xs:complexContent> > > <xs:extension > base="gml:AbstractFeatureType"> > > > <xs:sequence> > > > <xs:element name="townName" type="xs:string"/> > > > <xs:element name="townSize" type="xs:integer"/> > > > </xs:sequence> > > </xs:extension> > > </xs:complexContent> > > </xs:complexType> > > </xs:schema> > > = = = > > Mapping File > > = = = > > <?xml version="1.0" encoding="UTF-8"?> > > <as:AppSchemaDataAccess xmlns:as="http://www.geotools.org/app-schema" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:schemaLocation="http://www.geotools.org/app-schema > AppSchemaDataAccess.xsd"> > > <namespaces> > > <Namespace> > > <prefix>gml</prefix> > > > <uri>http://www.opengis.net/gml/3.2</uri> > > </Namespace> > > <Namespace> > > <prefix>town</prefix> > > > <uri>http://www.envitia.com/schemas/1.0</uri> > > </Namespace> > > </namespaces> > > <sourceDataStores> > > <DataStore> > > > <id>DataStoreInfoImpl-39154e6b:13ef0ec49f8:-7ffe</id> > > <parameters> > > <Parameter> > > > <name>dbtype</name> > > > <value>postgis</value> > > > </Parameter> > > <Parameter> > > > <name>host</name> > > > <value>localhost</value> > > > </Parameter> > > <Parameter> > > > <name>port</name> > > > <value>MyPort</value> > > > </Parameter> > > <Parameter> > > > <name>database</name> > > > <value>MyDatabase</value> > > > </Parameter> > > <Parameter> > > > <name>user</name> > > > <value>MyUser</value> > > > </Parameter> > > <Parameter> > > > <name>passwd</name> > > > <value>MyPassword </value> > > > </Parameter> > > </parameters> > > </DataStore> > > </sourceDataStores> > > <targetTypes> > > <FeatureType> > > > <schemaUri>http://test3.test2.test1/MyGMLAS.xsd</schemaUri> > > </FeatureType> > > </targetTypes> > > <typeMappings> > > <FeatureTypeMapping> > > > <sourceDataStore>DataStoreInfoImpl-39154e6b:13ef0ec49f8:-7ffe</sourceDataStore> > > > <sourceType>townssurvey_poly</sourceType> > > > <targetElement>town:TownSurvey</targetElement> > > <AttributeMappings> > > > <AttributeMapping> > > > <targetAttribute>town:townName</targetAttribute> > > > <sourceExpression><OCQL>TOWN</OCQL></sourceExpression> > > > </AttributeMapping> > > </AttributeMappings> > > </FeatureTypeMapping> > > </typeMappings> > > </as:AppSchemaDataAccess> > > = = = > > Error Stack Trace > > = = = > > java.lang.RuntimeException: Error occurred while building the resources > for the configuration page > > at > org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:302) > > at > org.geoserver.web.data.layer.NewLayerPage$6.onClick(NewLayerPage.java:241) > > at > org.geoserver.web.wicket.SimpleAjaxLink$1.onClick(SimpleAjaxLink.java:45) > > at > org.apache.wicket.ajax.markup.html.AjaxLink$1.onEvent(AjaxLink.java:68) > > at > org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177) > > at > org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300) > > at > org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119) > > at > org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) > > at > org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250) > > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) > > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) > > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > > at > org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484) > > at > org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > > at > org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159) > > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) > > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) > > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) > > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) > > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) > > at > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) > > at > org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:27) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74) > > at > org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) > > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > at > org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) > > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) > > at > org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:115) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) > > at > org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) > > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) > > at > org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:46) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) > > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) > > at > org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:103) > > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) > > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:75) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) > > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > > at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) > > at > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > at org.mortbay.jetty.Server.handle(Server.java:324) > > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) > > at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) > > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) > > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) > > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) > > at > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) > > Caused by: org.geotools.data.DataSourceException: > http://www.envitia.com/schemas/1.0:TownSurveyType not found. Available: > [http://www.envitia.com/schemas/1.0:TownSurvey] > > at > org.geotools.data.complex.AppSchemaDataAccess.getMappingByElement(AppSchemaDataAccess.java:201) > > at > org.geotools.data.complex.AppSchemaDataAccess.getSchema(AppSchemaDataAccess.java:157) > > at > org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:842) > > at > org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:799) > > at > org.geoserver.catalog.impl.FeatureTypeInfoImpl.getFeatureType(FeatureTypeInfoImpl.java:87) > > at > org.geoserver.catalog.CatalogBuilder.getDefaultStyle(CatalogBuilder.java:1271) > > at > org.geoserver.catalog.CatalogBuilder.buildLayer(CatalogBuilder.java:1219) > > at > org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:296) > > ... 93 more > > = = = > > Regards, > > Ryan > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > > > > _______________________________________________ > Geoserver-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/geoserver-users > -- Ben Caradoc-Davies <[email protected]> Software Engineer CSIRO Earth Science and Resource Engineering Australian Resources Research Centre ------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. A cloud service to automate IT design, transition and operations 2. Dashboards that offer high-level views of enterprise services 3. A single system of record for all IT processes http://p.sf.net/sfu/servicenow-d2d-j _______________________________________________ Geoserver-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
