[GIS] Using S3 as a geowebcache blob store

geoservergeowebcache

I'm having difficulty setting up an S3 bucket as a blobstore through geowebcache.

I have installed geoserver 2.8.2 which has gwc 1.8.1

I am following the docs at http://geowebcache.org/docs/1.8.x/configuration/storage.html#amazon-simple-storage-service-s3-blob-store

My config for the blobstore (with names and keys removed):

  <backendTimeout>120</backendTimeout>
<blobStores>
    <S3BlobStore default="false">
        <id>S3Cache</id>
        <enabled>false</enabled>
        <bucket>bucketName</bucket>
        <prefix>gwc</prefix>
        <awsAccessKey>key</awsAccessKey>
        <awsSecretKey>secretkey</awsSecretKey>
        <maxConnections>50</maxConnections>
        <useHTTPS>true</useHTTPS>
        <useGzip>true</useGzip>
     </S3BlobStore>
</blobStores>

I have geoserver installed through tomcat7 so when I restart the service and watch my geoserver logs I get the following error:

2016-03-02 07:56:22,294 INFO [config.XMLConfiguration] – Configuration file validated fine.

2016-03-02 07:56:22,381 WARN [support.DisposableBeanAdapter] – Invocation of destroy method failed on bean with name 'geoServerLoader': java.lang.NullPointerException

2016-03-02 07:56:22,383 ERROR [context.ContextLoader] – Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'GeoSeverTileLayerCatalog' defined in URL [jar:file:/var/lib/tomcat7/webapps/geoserver/WEB-INF/lib/gs-gwc-2.8.2.jar!/geowebcache-geoserver-context.xml]: Cannot resolve reference to bean 'gwcXmlConfig' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcXmlConfig' defined in URL [jar:file:/var/lib/tomcat7/webapps/geoserver/WEB-INF/lib/gs-gwc-2.8.2.jar!/geowebcache-core-context.xml]: Invocation of init method failed; nested exception is com.thoughtworks.xstream.converters.ConversionException: S3BlobStore : S3BlobStore

—- Debugging information —-

message : S3BlobStore

cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException

cause-message : S3BlobStore

class : java.util.ArrayList

required-type : java.util.ArrayList

converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter

class[1] : org.geowebcache.config.GeoWebCacheConfiguration
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter

version : f22447f59ca37f72bfe6bc746d834b0e73e7c3fc/f22447f59ca37f72bfe6bc746d834b0e73e7c3fc


The error to myself looks like a module is missing, which it might be. The documentation for the latest versions of geoserver and gwc indicated to me that s3BlobStore functionality is now included. There used to be an s3 blob store community plugin, but I can't find the download for this, and it looked like this was simply a mod for the geoserver gui to setup an s3 blob where configuration could already be used.

Please could someone point me in the right direction, as to what I might be missing.

EDIT: I've installed Geowebcache 1.8.1 as a standalone, and the config loads correctly and the s3 blob shows in the blobstores. Now if the integrated geowebcache is different to the standalone, how can you get the s3 functionality included?

Best Answer

Geoserver developer confirmed that there was an issue with the nightly build for the S3 plugin http://osgeo-org.1560.x6.nabble.com/geoserver-gwc-s3-plugin-td5253778.html

gwc-S3-plugin now available at http://ares.opengeo.org/geoserver/master/community-latest/

Downloaded, installed, and working as expected.

Related Question