[GIS] Getting DataStore Problem with Geotools

geotoolsjava

I recently found an issue with Geotools and getting the datastore for a shapefile.

If I try:

FileDataStore dataStore = FileDataStoreFinder.getDataStore(file);

-or-

Map connect = new HashMap();
connect.put("url", file.toURL());

DataStore dataStore = DataStoreFinder.getDataStore(connect);

getDataStore() always returns null. But using:

ShapefileDataStore dataStore = new ShapefileDataStore(file.toURI().toURL());

then the dataStore is set to the shapefile. Anyone have any ideas why this is? Is this a bug with Geootools 8.2? I'm running Geotools on Tomcat 7, perhaps there is some issue with Tomcat and the DataStore and FileDataStore classes?

Thanks!

Best Answer

Check your class path, it might miss the jars that are able to read the shape file:

Check the availabel DataStores:

Iterator availableStores =  DataStoreFinder.getAvailableDataStores();
LOGGER.info("List available Stores: {");
            while (availableStores.hasNext()) {
                LOGGER.info(availableStores.next().toString());
            }
LOGGER.info("}");

if the List is empty, then the necessary jar is missing in the classpath.

In my case, using an old version of geotools, I had to add the gt2-shapefile-2.3.2 to the classpath

Related Question