I have a form file and I need to read the form file from my java code. I used the code below to read the form file.
public class App {
public static void main(String[] args) {
File file = new File("C:\\Test\\sample.shp");
Map<String, Object> map = new HashMap<>();
try {
map.put("url", URLs.fileToUrl(file));
DataStore dataStore = DataStoreFinder.getDataStore(map);
String typeName = dataStore.getTypeNames()[0];
SimpleFeatureSource source = dataStore.getFeatureSource(typeName);
SimpleFeatureCollection collection = source.getFeatures();
try (FeatureIterator<SimpleFeature> features = collection.features()) {
while (features.hasNext()) {
SimpleFeature feature = features.next();
SimpleFeatureType schema = feature.getFeatureType();
Class<?> geomType = schema.getGeometryDescriptor().getType().getBinding();
String type = "";
if (Polygon.class.isAssignableFrom(geomType) || MultiPolygon.class.isAssignableFrom(geomType)) {
MultiPolygon geom = (MultiPolygon) feature.getDefaultGeometry();
type = "Polygon";
if (geom.getNumGeometries() > 1) {
type = "MultiPolygon";
}
} else if (LineString.class.isAssignableFrom(geomType)
|| MultiLineString.class.isAssignableFrom(geomType)) {
} else {
}
System.out.println(feature.getDefaultGeometryProperty().getValue().toString());
}
}
} catch (Exception e) {
}
}
}
I got the desired result. But my requirement is to write aws lambda function to read the form file. To do this 1. I created the jamba java project of the s3 event project. I wrote the same code inside handleRequest. I loaded the java lambda project as a lanbda function and added one trigger. When I load the .shp file as s3 bucket, the lmbda function will be called automatically. But I get an error like below
java.lang.RuntimeException: java.io.FileNotFoundException: /sample.shp (There is no such file or directory)
sample.shp s3-. .
S3 ?
. ,
S3Object object = s3.getObject(new GetObjectRequest(bucket, key));
InputStream objectData = object.getObjectContent();
map.put("url", objectData );
File file = new File("C:\\Test\\sample.shp");
map.put("url", URLs.fileToUrl(file));
:-( ,
java.lang.NullPointerException
DataStore dataStore = DataStoreFinder.getDataStore(objectData);
DataStore dataStore = DataStoreFinder.getDataStore(map);
java.lang.ClassCastException: com.amazonaws.services.s3.model.S3ObjectInputStream java.util.Map
, DataStore. ..: - (
-, ?
, - ...