Hello all,

I have a PostGIS database containing tiled raster (geotif) data that I 
would like to be able to deliver using GeoServer.

I followed the 'Storing a coverage in a JDBC database' tutorial located 
here:
http://docs.geoserver.org/stable/en/user/tutorials/imagemosaic-jdbc/imagemosaic-jdbc_tutorial.html

I'm assuming something in my configuration or system settup is flawed 
since I have attempted to setup my mapping/database in multiple 
configurations (follow tutorial exactly, use geotiff with different 
table layouts according to different sources).  Each time, when I 
attempt to create a new ImageMosaicJDBC Coverage in GeoServer, pointing 
to my xml config file, I recieve the following error:

Could not list layers for this store, an error occurred retrieving them: 
Failed to create reader from file:coverages/dted_tiles/dted.postgis.xml 
and hints null


---------------------------------------------------------------------------
Config Files
---------------------------------------------------------------------------

dted.postgis.xml
---------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE ImageMosaicJDBCConfig [
   <!ENTITY mapping PUBLIC "mapping" "mapping.postgis.xml.inc">
   <!ENTITY connect PUBLIC "connect" "connect.postgis.xml.inc">]>
<config version="1.0">
   <coverageName name="dted"/>
   <coordsys name="EPSG:4326"/>
   <!-- interpolation 1 = nearest neighbour, 2 = bilinear, 3 = bicubic -->
   <scaleop  interpolation="1"/>
   <verify cardinality="false"/>
   &mapping;
   &connect;
</config>

connect.postgis.xml.inc
---------------------------------------------------------------------------
connect>
         <dstype value="DBCP" />
         <username value="##########" />
         <password value="##########" />
         <jdbcUrl value="jdbc:postgresql://localhost:5432/gis_test" />
         <driverClassName value="org.postgresql.Driver" />
         <maxActive value="10" />
         <maxIdel value="0" />
</connect>

mapping.postgis.xml.inc
---------------------------------------------------------------------------
<!-- possible values: universal,postgis,db2,mysql,oracle -->
<spatialExtension name="postgis"/>
<mapping>
     <masterTable name="mosaic" >
       <coverageNameAttribute name="name"/>
       <maxXAttribute name="maxX"/>
       <maxYAttribute name="maxY"/>
       <minXAttribute name="minX"/>
       <minYAttribute name="minY"/>
       <resXAttribute name="resX"/>
       <resYAttribute name="resY"/>
       <tileTableNameAtribute  name="TileTable" />
       <spatialTableNameAtribute name="SpatialTable" />
     </masterTable>
     <tileTable>
       <blobAttributeName name="data" />
       <keyAttributeName name="location" />
     </tileTable>
     <spatialTable>
       <keyAttributeName name="location" />
       <geomAttributeName name="geom" />
       <tileMaxXAttribute name="maxX"/>
       <tileMaxYAttribute name="maxY"/>
       <tileMinXAttribute name="minX"/>
       <tileMinYAttribute name="minY"/>
     </spatialTable>
</mapping>

The cprresponding table layout generated by the scripts and containing 
the tiled raster data:
mosaic [name, spatialtable, tiletable, resx, resy, minx, miny, maxx, maxy]
dted_# [location, data, geom]


---------------------------------------------------------------------------
System Information
---------------------------------------------------------------------------
CentOS 6.4 x86_64
Java 1.7.0_25
tomcat6
GeoServer 2.4
PostgreSQL 9.3 / PostGIS 2.1
JAI and JAI ImageIO are installed as recommended.

/geoserver/WEB-INF/lib/gt-imagemosaic-jdbc-10.0.jar

I did notice that the postgresql jar in geoserver is an older version.  
Copied in new driver
/geoserver/WEB-INF/lib/postgresql-8.4-701.jdbc3.jar
/geoserver/WEB-INF/lib/postgresql-9.3-1100.jdbc41.jar

---------------------------------------------------------------------------
Log
---------------------------------------------------------------------------
java.io.IOException: java.lang.NullPointerException
     at 
org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCReader.<init>(ImageMosaicJDBCReader.java:164)
     at 
org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCFormat.getReader(ImageMosaicJDBCFormat.java:210)
     at 
org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCFormat.getReader(ImageMosaicJDBCFormat.java:67)
     ...
     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:724)
Caused by: java.lang.NullPointerException
     at 
org.geotools.gce.imagemosaic.jdbc.JDBCAccessPostGis.initForPostGisVersion(JDBCAccessPostGis.java:80)
     at 
org.geotools.gce.imagemosaic.jdbc.JDBCAccessPostGis.<init>(JDBCAccessPostGis.java:64)
     at 
org.geotools.gce.imagemosaic.jdbc.JDBCAccessFactory.getJDBCAcess(JDBCAccessFactory.java:64)
     at 
org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCReader.<init>(ImageMosaicJDBCReader.java:161)
     ... 119 more
2013-11-14 10:37:46,463 INFO [geoserver.web] - Getting list of coverages 
for saved store file:coverages/dted_tiles/dted.postgis.xml
java.lang.RuntimeException: Could not list layers for this store, an 
error occurred retrieving them: Failed to create reader from 
file:coverages/dted_tiles/dted.postgis.xml and hints null
     at 
org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:150)
     at 
org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:58)
     at 
org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:236)
     at 
org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:562)
     at 
org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.<init>(GeoServerTablePanel.java:555)
     at 
org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:219)
     at 
org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:98)
     at 
org.geoserver.web.data.layer.NewLayerPage$1.<init>(NewLayerPage.java:101)
     at 
org.geoserver.web.data.layer.NewLayerPage.<init>(NewLayerPage.java:101)
     at 
org.geoserver.web.data.store.CoverageStoreNewPage.onSuccessfulSave(CoverageStoreNewPage.java:76)
     at 
org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:67)
     at 
org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:115)
     at 
org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68)
     at 
org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)
     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.doPost(WicketServlet.java:160)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
     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.doPost(FrameworkServlet.java:789)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
     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:27)
     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.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:52)
     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:134)
     at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
     at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
     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:75)
     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:42)
     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:47)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at 
org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:43)
     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:724)
Caused by: java.io.IOException: Failed to create reader from 
file:coverages/dted_tiles/dted.postgis.xml and hints null
     at 
org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1252)
     at 
org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:58)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:606)
     at 
org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:145)
     at com.sun.proxy.$Proxy14.getGridCoverageReader(Unknown Source)
     at 
org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:89)
     ... 108 more

-- 
Patrick

------------------------------------------------------------------------------
DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to