Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

If I try:

FileDataStore dataStore = FileDataStoreFinder.getDataStore(file);


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?


share|improve this question
can you add what file actually contains? I suspect either it doesn't end .shp or it contains spaces and is not being encoded correctly – iant Sep 24 '12 at 8:35

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();"List available Stores: {");
            while (availableStores.hasNext()) {

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

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.