Some followup... I've been debugging through the code for wfs-2.1.1/org.geoserver.wfs.response/ShapeipOutputFormat.java
The call I am making: http://localhost:8080/upload/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=upload:Yahara_River_HRUs_alb_eq&maxFeatures=50&outputFormat=SHAPE-ZIP In ShapeZipOutputFormat, line 184, we have: FeatureTypeInfo ftInfo = catalog.getFeatureTypeByName(fc.getSchema().getName()); The variable ftInfo comes back null from this call. fc.getSchema().getName() comes back with a populated object (though the namespace property for this object is http://www.opengis.net/gml and I thought it should be either "upload" or "gov.usgs.cida.gdp.upload" which is the namespace URI for the "upload" workspace The function goes to SecureCatalogImpl.java, line 229 to run the function: checkAccess(user(), delegate.getFeatureTypeByName(name)) The parameter user() is populated, but delegate.getFeatureTypeByName(name) comes in as null and the checkAccess function returns null due to this. This causes ftInfo to return as null and this causes a nullpointer exception down the line which then brings us to "Failed to process the file name template null" delegate.getFeatureTypeByName(name) gets run with the "name" argument as "http://www.opengis.net/gml:Yahara_River_HRUs_alb_eq" which seems wrong (so it is not surprising that this would come back as null. --------------------------------------------------------------------------- Ivan Suftin - Applications Developer - [email protected] Center for Integrated Data Analytics (CIDA) U.S. Geological Survey 8505 Research Way, Middleton, WI 53562 Office: (608) 821-3825 - Cell : (608) 345-8963 On Aug 23, 2011, at 2:01 PM, Ivan Suftin wrote: > I suppose this can be seen as a revival of a previous userlist thread that > never really got resolved @ > http://sourceforge.net/mailarchive/forum.php?thread_name=BANLkTim0ybPAk_ym%3Du5ZPTEi2cGNkwOAAw%40mail.gmail.com&forum_name=geoserver-devel > > I am using Geoserver 2.1.1 > > I've included a "shapezip.ftl" in my project that's 3 lines: > zip=${typename} > shp=${typename}${geometryType} > txt=wfsrequest > > This file is included in geoserver/data/templates > > However, when I make the request to getfeature, for example: > http://localhost:8081/geoserver/upload/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=upload:Yahara_alb&outputFormat=shape-zip > > I am still getting: > <ServiceExceptionReport version="1.2.0" > xsi:schemaLocation="http://www.opengis.net/ogc > http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd"><ServiceException> > Failed to process the file name template null > </ServiceException></ServiceExceptionReport> > > Am I missing something? > > Here's the stacktrace from the Geoserver logs: > 2011-08-23 12:56:55,872 ERROR [geoserver.ows] - > org.geoserver.wfs.WFSException: Failed to process the file name template > at > org.geoserver.wfs.response.ShapeZipOutputFormat$FileNameSource.processTemplate(ShapeZipOutputFormat.java:847) > at > org.geoserver.wfs.response.ShapeZipOutputFormat$FileNameSource.getZipName(ShapeZipOutputFormat.java:856) > at > org.geoserver.wfs.response.ShapeZipOutputFormat.getHeaders(ShapeZipOutputFormat.java:194) > at org.geoserver.ows.Dispatcher.response(Dispatcher.java:746) > at > org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:238) > 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:875) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) > at > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:23) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74) > at > org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:394) > at > org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) > at > org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) > at > org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) > at > org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) > at > org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) > at > org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406) > at > org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:185) > at > org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:71) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > at java.lang.Thread.run(Thread.java:662) > Caused by: java.lang.NullPointerException > at > org.geoserver.wfs.response.ShapeZipOutputFormat$FileNameSource.getTypeName(ShapeZipOutputFormat.java:852) > at > org.geoserver.wfs.response.ShapeZipOutputFormat$FileNameSource.processTemplate(ShapeZipOutputFormat.java:829) > > --------------------------------------------------------------------------- > Ivan Suftin - Applications Developer - [email protected] > Center for Integrated Data Analytics (CIDA) > U.S. Geological Survey > 8505 Research Way, Middleton, WI 53562 > Office: (608) 821-3825 - Cell : (608) 345-8963 > > > > ------------------------------------------------------------------------------ > Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > user administration capabilities and model configuration. Take > the hassle out of deploying and managing Subversion and the > tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > _______________________________________________ > Geoserver-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/geoserver-users ------------------------------------------------------------------------------ EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev _______________________________________________ Geoserver-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
