I'm having some problems using an XML document to submit a request. When I submit the request using a standard GET, using this Url:
http://localhost:8080/geoserver/GetFeature?TYPENAME=lakes
It works fine. But when I submit the request using a POST, using this XML document:
<?xml version="1.0" encoding="UTF-8"?>
<GetFeature maxFeatures="500000"><Query typeName="lakes"><PropertyName>lakes.the_geom</PropertyName></Query></GetFeature>
I get an empty response back and this stack trace shows up in the Tomcat logs:
Starting service Tomcat-Standalone
Apache Tomcat/4.1.24
Apr 11, 2003 12:59:17 PM org.vfny.geoserver.config.WfsConfig setMaxFeatures
INFO: could not parse maxFeatures: , using default: 2000
Apr 11, 2003 12:59:17 PM org.vfny.geoserver.config.WfsConfig setLogLevel
WARNING: could not parse LogLevel: , using level: INFO, found in logging.properties file in java home
6 [INFO] org.vfny.geoserver.zserver.GeoZServer - Creating ZServer on port: 5210
8809 [INFO] org.vfny.geoserver.servlets.Feature - Had an undefined error: null
java.lang.NullPointerException
at org.geotools.feature.FeatureTypeFlat.<init>(FeatureTypeFlat.java:141)
at org.geotools.feature.FeatureTypeFactory.create(FeatureTypeFactory.java:73)
at org.vfny.geoserver.config.TypeInfo.getDataSource(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getQuery(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getXmlResponse(Unknown Source)
at org.vfny.geoserver.servlets.Feature.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
at java.lang.Thread.run(Thread.java:536)
1199896 [INFO] org.vfny.geoserver.servlets.Feature - Had an undefined error: null
java.lang.NullPointerException
at org.geotools.feature.FeatureTypeFlat.<init>(FeatureTypeFlat.java:141)
at org.geotools.feature.FeatureTypeFactory.create(FeatureTypeFactory.java:73)
at org.vfny.geoserver.config.TypeInfo.getDataSource(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getQuery(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getXmlResponse(Unknown Source)
at org.vfny.geoserver.servlets.Feature.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
at java.lang.Thread.run(Thread.java:536)
I'm running:
The Geoserver CVS tip (So, like version 0.93_04_11_2003)
Tomcat 4.1.24
Redhat Linux 8.0
Postgresql 7.2.3
Java 1.4.1
I used to be able to run this same dataset (with the POST and everything) using version 0.90 on Resin 2.1.6, but nothing seems to work on Tomcat, even with the most recent code (and I need it to run on Tomcat).
Thanks in advance for any help,
Ben Rady
/*************************************
Ben Rady
713-975-7434
ben@anonymised.com
*************************************/
So the problem is with the propertyName element. I actually meant to put
something in CVS to issue a warning when it doesn't recognize the property
name. But in my flurry of testing I forgot to get it in. So it's in, but
I also figured it'd be better to actually fix things up better. The
problem is that you are using the 0.14 style of doing things, specifying
the feature name before the property name (lakes.the_geom). Of course, we
weren't yet doing things _exactly_ the new way either, as you're supposed
to prepend the namespace prefix instead. So I just fixed up the code to
handle both ways. Both are a bit of a hack, just stripping things out,
and I will work on making both less hackish, but it should work for now.
So now you can have
<PropertyName>the_geom</PropertyName> (our default simplified way)
or
<PropertyName>myns:the_geom</PropertyName> (the new (1.0.0) way)
or
<PropertyName>lakes.the_geom</PropertyName> (the old (.14) way)
Hope this works,
Chris
On Fri, 11 Apr 2003, Ben Rady wrote:
I'm having some problems using an XML document to submit a request. When I
submit the request using a standard GET, using this Url:
http://localhost:8080/geoserver/GetFeature?TYPENAME=lakes
It works fine. But when I submit the request using a POST, using this XML
document:
<?xml version="1.0" encoding="UTF-8"?>
<GetFeature maxFeatures="500000"><Query
typeName="lakes"><PropertyName>lakes.the_geom</PropertyName></Query></GetFeature>
I get an empty response back and this stack trace shows up in the Tomcat logs:
Starting service Tomcat-Standalone
Apache Tomcat/4.1.24
Apr 11, 2003 12:59:17 PM org.vfny.geoserver.config.WfsConfig setMaxFeatures
INFO: could not parse maxFeatures: , using default: 2000
Apr 11, 2003 12:59:17 PM org.vfny.geoserver.config.WfsConfig setLogLevel
WARNING: could not parse LogLevel: , using level: INFO, found in
logging.properties file in java home
6 [INFO] org.vfny.geoserver.zserver.GeoZServer - Creating ZServer on
port: 5210
8809 [INFO] org.vfny.geoserver.servlets.Feature - Had an undefined error:
null
java.lang.NullPointerException
at org.geotools.feature.FeatureTypeFlat.<init>(FeatureTypeFlat.java:141)
at org.geotools.feature.FeatureTypeFactory.create(FeatureTypeFactory.java:73)
at org.vfny.geoserver.config.TypeInfo.getDataSource(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getQuery(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getXmlResponse(Unknown Source)
at org.vfny.geoserver.servlets.Feature.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
at java.lang.Thread.run(Thread.java:536)
1199896 [INFO] org.vfny.geoserver.servlets.Feature - Had an undefined
error: null
java.lang.NullPointerException
at org.geotools.feature.FeatureTypeFlat.<init>(FeatureTypeFlat.java:141)
at org.geotools.feature.FeatureTypeFactory.create(FeatureTypeFactory.java:73)
at org.vfny.geoserver.config.TypeInfo.getDataSource(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getQuery(Unknown Source)
at org.vfny.geoserver.responses.FeatureResponse.getXmlResponse(Unknown Source)
at org.vfny.geoserver.servlets.Feature.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
at java.lang.Thread.run(Thread.java:536)
I'm running:
The Geoserver CVS tip (So, like version 0.93_04_11_2003)
Tomcat 4.1.24
Redhat Linux 8.0
Postgresql 7.2.3
Java 1.4.1
I used to be able to run this same dataset (with the POST and everything)
using version 0.90 on Resin 2.1.6, but nothing seems to work on Tomcat,
even with the most recent code (and I need it to run on Tomcat).
Thanks in advance for any help,
Ben Rady
/*************************************
Ben Rady
713-975-7434
ben@anonymised.com
*************************************/
-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger
for complex code. Debugging C/C++ programs can leave you feeling lost and
disoriented. TotalView can help you find your way. Available on major UNIX
and Linux platforms. Try it free. www.etnus.com
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel