Hmmm... looks like the parser isn't managing to parse your application
feature type correctly into a geotools feature type. Which method of
stream pasring are you using? Are you passing in your wfs configuration,
or an ApplicationSchema configuration?
Michael Lutz wrote:
> Ok, now I'm getting this exception:
>
> java.lang.RuntimeException: Parsing failed for ff_portugal_2002_4326:
> org.geotools.feature.IllegalAttributeException: No attribute named fireID
> at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:96)
> at
> org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:204)
> at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:163)
> at
> org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java:191)
> at
> org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:399)
> at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.geotools.xml.Parser.parse(Parser.java:184)
> at org.geotools.xml.Parser.parse(Parser.java:146)
> at org.n52.wps.xml.GMLReader.readFromInputStream(GMLReader.java:38)
> at org.n52.wps.xml.GMLReader.readFromUrl(GMLReader.java:71)
> at gmlparsing.GMLTest.main(GMLTest.java:102)
> Caused by: org.geotools.feature.IllegalAttributeException: No attribute
> named fireID
> at
> org.geotools.feature.DefaultFeature.setAttribute(DefaultFeature.java:283)
> at
> org.geotools.gml2.bindings.GMLAbstractFeatureTypeBinding.parse(GMLAbstractFeatureTypeBinding.java:236)
> at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:84)
> ... 17 more
>
> I am using a snapshot from this morning. But as I didn't manage to
> compile it completely, I only included the new
> gt2-xml-xsd-2.4-SNAPSHOT.jar and gt2-main-2.4-SNAPSHOT.jar JARs.
>
> Cheers,
> Michael
>
> Justin Deoliveira wrote:
>> Michael Lutz wrote:
>>> Thanks. The StreamingParser works considerably better (if a little
>>> slower). Note that the xPath expression must be "//featureMember"
>>> (without the prefix).
>> Right.. :) JXPath seems to not like the prefixes..., probably how the
>> context is being setup.
>>
>> Yeah the streaming parser will be considerably slower. I haven't quite
>> got around to optimizing it yet. Right now a jxpath context is created
>> for each element that gets parsed, this could definitely be improved.
>>> I also tried "Alternative 2: Ignoring the Application Schema", but this
>>> didn't work. I get
>>>
>>> org.xml.sax.SAXException: Handler for wfs:FeatureCollection could not be
>>> found.
>>> at
>>> org.geotools.xml.impl.ParserHandler.startElement(ParserHandler.java:357)
>>> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
>>> Source)
>>> at ...
>>>
>>> I don't understand why the parser requires a handler for
>>> "wfs:FeatureCollection" if I tell it to ignore the schema? When I use
>>> the WFSConfiguration (which I created for WFS feature collections)
>>> instead of GMLConfiguration, I get the same exception for the
>>> application schema type, i.e. test:TestFeature in the example.
>>>
>> Sorry, the docs are somewhat at fault here :). You also need to specify
>> the following property:
>>
>> configuration.getProperties().add(Parser.Properties.PARSE_UNKNOWN_ELEMENTS);
>>
>> Also, how recent is the snapshot you are working from? I have recently
>> made some changes that make the parser a bit more lax when it comes to
>> this situation. We have nigthtly snapshots going now so it should be
>> available.
>>
>> -Justin
>>> Any ideas?
>>>
>>> Cheers,
>>> Michael
>>>
>>>
>>> Justin Deoliveira wrote:
>>>> Hi Michael,
>>>>
>>>> I suggest for any reasonable size dataset you use the StreamingParser:
>>>>
>>>> StreamingParser parser =
>>>> new StreamingParser(configuration,"//gml:featureMember");
>>>>
>>>> try{
>>>> Feature f = null;
>>>> while ( ( f = parser.parse() ) != null ) {
>>>> ...
>>>> }
>>>>
>>>> }...
>>>> }
>>>>
>>>> Some more info about streaming here:
>>>>
>>>> http://docs.codehaus.org/display/GEOTDOC/GML+XML+Support
>>>>
>>>> -Justin
>>>>
>>>> Michael Lutz wrote:
>>>>> We are running into big memory problems when trying to parse large GML
>>>>> files containing WFS feature collections (e.g. 25000 points, about 25MB
>>>>> as GML) using the following code:
>>>>>
>>>>> public static FeatureCollection readFromInputStream(InputStream in) {
>>>>> Configuration configuration = new WFSConfiguration();
>>>>> Parser parser = new Parser(configuration);
>>>>> try{
>>>>> FeatureCollection fc = (FeatureCollection) parser.parse( in );
>>>>> in.close();
>>>>> return fc;
>>>>> } ...
>>>>> }
>>>>>
>>>>> For this example, the used memory goes up to 800MB. After the parsing,
>>>>> it goes down again to around 60MB.
>>>>>
>>>>> Any ideas why this is, and where we should be looking for memory leaks?
>>>>>
>>>>> Cheers,
>>>>> Michael
>>>>>
>>>>> -------------------------------------------------------------------------
>>>>> Take Surveys. Earn Cash. Influence the Future of IT
>>>>> Join SourceForge.net's Techsay panel and you'll get the chance to share
>>>>> your
>>>>> opinions on IT & business topics through brief surveys-and earn cash
>>>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>>>> _______________________________________________
>>>>> Geotools-devel mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>>>>
>>>>>
>>>>>
>>> -------------------------------------------------------------------------
>>> Take Surveys. Earn Cash. Influence the Future of IT
>>> Join SourceForge.net's Techsay panel and you'll get the chance to share your
>>> opinions on IT & business topics through brief surveys-and earn cash
>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>> _______________________________________________
>>> Geotools-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>>
>>>
>>>
>>
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Geotools-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>
> !DSPAM:1004,45ddca06324211194215290!
>
--
Justin Deoliveira
The Open Planning Project
http://topp.openplans.org
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel