Hello!
I’m hours and hours working on a “relatively” simple thing, and I can’t get the following code to work:
String dir = “D:\tomcat5\webapps\geoserver\data\featureTypes\spsaop_st\”;
String xmlFile = “sp.xml”;
String shapefile = “spsaop_st.shp”;
DOMParser parser = new DOMParser();
File file = new File(dir+xmlFile);
parser.parse(file.toURI().toString());
Document document = parser.getDocument();
NodeList list = document.getElementsByTagName(“BBOX”);
Filter filter = FilterDOMParser.parseFilter(list.item(0));
System.out.println(filter.toString());
ShapefileDataStore data = new ShapefileDataStore((new File(dir+shapefile).toURL()));
Query query = new DefaultQuery( “spsaop_st”, /Filter.NONE/filter );
FeatureReader reader = data.getFeatureReader( query, Transaction.AUTO_COMMIT ); // <–Line 36 (Exception is thrown here)
try {
while( reader.hasNext() ){
Feature feature = reader.next();
System.out.println( "> "+feature.toString() );
}
}
finally {
reader.close();
}
The XML file is:
Geometry -46.7348,-23.6439,-46.69,-23.61An exception is thrown:
[ Geometry bbox POLYGON ((-46.7348 -23.6439, -46.7348 -23.6439, -46.7348 -23.6439, -46.7348 -23.6439, -46.7348 -23.6439)) ]
23/01/2004 00:56:24 org.geotools.io.NIOBufferUtils$1 run
SEVERE: Error attempting to close a mapped byte buffer
java.lang.NoSuchMethodException: java.nio.DirectByteBufferR.cleaner()
at java.lang.Class.getMethod0(Class.java:1756)
at java.lang.Class.getMethod(Class.java:963)
at org.geotools.io.NIOBufferUtils$1.run(NIOBufferUtils.java:40)
at java.security.AccessController.doPrivileged(Native Method)
at org.geotools.io.NIOBufferUtils.clean(NIOBufferUtils.java:37)
at org.geotools.data.shapefile.shp.ShapefileReader.close(ShapefileReader.java:223)
at org.geotools.data.shapefile.ShapefileDataStore$Reader.close(ShapefileDataStore.java:369)
at org.geotools.data.FIDFeatureReader.close(FIDFeatureReader.java:125)
at org.geotools.data.FilteringFeatureReader.close(FilteringFeatureReader.java:82)
at org.geotools.filter.GenericFilter.(GenericFilter.java:60)
at org.geotools.filter.GenericFilter.main(GenericFilter.java:29)
23/01/2004 00:56:25 org.geotools.io.NIOBufferUtils$1 run
SEVERE: Error attempting to close a mapped byte buffer
java.lang.NoSuchMethodException: java.nio.DirectByteBufferR.cleaner()
at java.lang.Class.getMethod0(Class.java:1756)
at java.lang.Class.getMethod(Class.java:963)
at org.geotools.io.NIOBufferUtils$1.run(NIOBufferUtils.java:40)
at java.security.AccessController.doPrivileged(Native Method)
at org.geotools.io.NIOBufferUtils.clean(NIOBufferUtils.java:37)
at org.geotools.data.shapefile.dbf.DbaseFileReader.close(DbaseFileReader.java:190)
at org.geotools.data.shapefile.ShapefileDataStore$Reader.close(ShapefileDataStore.java:370)
at org.geotools.data.FIDFeatureReader.close(FIDFeatureReader.java:125)
at org.geotools.data.FilteringFeatureReader.close(FilteringFeatureReader.java:82)
at org.geotools.filter.GenericFilter.(GenericFilter.java:60)
at org.geotools.filter.GenericFilter.main(GenericFilter.java:29)
java.lang.NullPointerException
at org.geotools.filter.GeometryFilterImpl.contains(GeometryFilterImpl.java:201)
at org.geotools.data.FilteringFeatureReader.hasNext(FilteringFeatureReader.java:119)
at org.geotools.filter.GenericFilter.(GenericFilter.java:54)
at org.geotools.filter.GenericFilter.main(GenericFilter.java:29)
Well, by the error, seems that some package might be missing, however, I tried to find it in Google and other search Enginees and could get NOTHING. I tried look it up in java.sun.com but was useless again.
I checked the source code in geotools.io.NIOBufferUtils and I realized this call is dynamicaly built. I really don’t know what else I should do…
Does anybody have at least a hint?
Thanks a lot in advance.
Regards,
Aurelio