[Geoserver-users] Newbie - 1.6.1 WFS version question

Platform: Windows XP, Sun Java 1.6.0_04, GeoServer 1.6.1 war added to
GlassFish v2-b58g.
All GeoServer demo's run fine.

Created new Data Store to connect to Oracle 10g Enterprise Edition
10.2.0.3.0, connecting as a test user that owns a few demonstration tables.

Created a new Namespace, vai

Created a new FeatureType OraGIS:locator which is linked to VT_LOCATOR table
and vai Namespace

WMS requests for vai:locator works at first attempt - very nice :wink:

WFS is more problematic though:
GetCapabilities includes a section like this which looks OK to me:
<FeatureType>
  <Name>vai:locator</Name>
  <Title>VT_LOCATOR_Type</Title>
  <Abstract>Generated from OraGIS</Abstract>
  <ows:Keywords>
    <ows:Keyword>VT_LOCATOR</ows:Keyword>
    <ows:Keyword>OraGIS</ows:Keyword>
  </ows:Keywords>
  <DefaultSRS>urn:x-ogc:def:crs:EPSG:6.11.2:4326</DefaultSRS>
  <OutputFormats>
    <Format>GML2</Format>
    <Format>GML2-GZIP</Format>
    <Format>text/xml; subtype=gml/2.1.2</Format>
    <Format>text/xml; subtype=gml/3.1.1</Format>
    <Format>gml3</Format>
    <Format>SHAPE-ZIP</Format>
    <Format>json</Format>
  </OutputFormats>
  <ows:WGS84BoundingBox>
    <ows:LowerCorner>-120.996781797421 -39.3900722151593</ows:LowerCorner>
    <ows:UpperCorner>175.815709923708 63.9519345221582</ows:UpperCorner>
  </ows:WGS84BoundingBox>
</FeatureType>

DescribeFeature also looks OK:
<DescribeFeatureType
  version="1.1.0"
  service="WFS"
  xmlns="http://www.opengis.net/wfs&quot;
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
    <TypeName>vai:locator</TypeName>
</DescribeFeatureType>

results:
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://geo.myCompany.net/test&quot;&gt;
<xsd:import namespace="http://www.opengis.net/gml&quot;
schemaLocation="http://localhost:8080/geoserver/wfs/schemas/gml/3.1.1/base/gml.xsd&quot;/&gt;
  <xsd:complexType name="locatorType">
  <xsd:complexContent>
  <xsd:extension base="gml:AbstractFeatureType">
  <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="TARGET_ID" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_TYPE" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_NO" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_GEOMETRY"
nillable="true" type="gml:GeometryPropertyType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_ALTITUDE"
nillable="true" type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_START"
nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_END" nillable="true"
type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_STATUS"
nillable="true" type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="0" name="IS_PRIMARY" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="PARENT_ID" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_NAME" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LAST_MODIFIED"
nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="1" name="MODIFIED_BY" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="DESCRIPTION" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="COORDINATE_SYSTEM"
nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="VT_LOCATOR" substitutionGroup="gml:_Feature"
type="vai:locatorType"/>
</xsd:schema>

HOWEVER, I really struggled with GetFeature - shown here without a filter:

<wfs:GetFeature service="WFS" version="1.1.0"
  outputFormat="GML2"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/WFS-basic.xsd&quot;&gt;
  <wfs:Query typeName="vai:locator">
    </wfs:Query>
</wfs:GetFeature>

results in:
<ows:ExceptionReport version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/ows
http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd&quot;&gt;
  <ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.NullPointerException null</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

BUT, If I change just the first line of the request from wfs 1.1.0 to wfs
1.0.0 it all suddenly (well actually not so suddenly - there was about a day
of trying just about every other permutation and combination ..) springs
into life:

<wfs:GetFeature service="WFS" version="1.0.0"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:locator">
    </wfs:Query>
</wfs:GetFeature>

<wfs:FeatureCollection xsi:schemaLocation="http://geo.myCompany.net/test
http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=vai:locator
http://www.opengis.net/wfs
http://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd&quot;&gt;
  <gml:boundedBy>
  <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts=" ">-120.9967818,-39.39007222
175.81570992,63.95193452</gml:coordinates>
</gml:Box>
</gml:boundedBy>
  <gml:featureMember>
  <vai:locator fid="locator.317">
<vai:TARGET_ID>473</vai:TARGET_ID>
<vai:LOCATOR_TYPE>0</vai:LOCATOR_TYPE>
<vai:LOCATOR_NO>0</vai:LOCATOR_NO>
  <vai:LOCATOR_GEOMETRY>
  <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts="
">-3.46833,56.41806</gml:coordinates>
</gml:Point>
</vai:LOCATOR_GEOMETRY>
<vai:LOCATOR_ALTITUDE>20</vai:LOCATOR_ALTITUDE>
<vai:LOCATOR_START>2001-09-20T00:00:00</vai:LOCATOR_START>
<vai:LOCATOR_END>9999-12-31T00:00:00</vai:LOCATOR_END>
<vai:LOCATOR_STATUS>1</vai:LOCATOR_STATUS>
<vai:LAST_MODIFIED>2005-01-21T13:46:52</vai:LAST_MODIFIED>
<vai:MODIFIED_BY>WDF</vai:MODIFIED_BY>
<vai:DESCRIPTION>Location checked, WDF.</vai:DESCRIPTION>
<vai:COORDINATE_SYSTEM>WGS84</vai:COORDINATE_SYSTEM>
</vai:locator>
</gml:featureMember>
...

I suspect that I haven't properly set the featureType up - maybe something
to do with the nameSpace? or maybe I am making a stupid mistake in
requesting WFS 1.1.0 ?

n.b. stackTrace from failed WFS 1.1.0 request:

Request: getFeature
        handle = null
        service = WFS
        version = 1.1.0
        baseUrl = http://localhost:8080/geoserver/
        query = [net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null,
propertyName: null, function: null, filter: [ locator.56 ], sortBy: null,
featureVersion: null, handle: null, srsName: null, typeName:
[{http://geo.myCompany.net/test\}locator])]
        maxFeatures = null
        outputFormat = text/xml; subtype=gml/3.1.1
        resultType = results
        traverseXlinkDepth = null
        traverseXlinkExpiry = null
Result:
12 Mar 15:51:12 WARN [geoserver.ows] -
java.lang.NullPointerException
        at
org.geotools.gml2.FeaturePropertyExtractor.properties(FeaturePropertyExtractor.java:60)
        at org.geotools.xml.Encoder.encode(Encoder.java:573)
        at org.geotools.xml.Encoder.encode(Encoder.java:320)
        at
org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:122)
        at
org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:137)
        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:615)
        at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:192)
        at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:69)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361)
        at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
12 Mar 15:51:12 INFO [geoserver.filters] - 127.0.0.1 "POST /geoserver/wfs"
took 672ms

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16004690.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Hi Jonathan,

Thanks for the complete bug report. Its not obvious to me what is the problem. If you could perhaps change logging to GEOTOOLS_DEVELOPER_LOGGING and include the log that would be helpful.

Also, could you try the following request and see if it produces the same result. Thanks.

  <wfs:GetFeature service="WFS" version="1.1.0"
    xmlns:vai="http://geo.myCompany.net/test&quot;
    xmlns:wfs="http://www.opengis.net/wfs&quot;
    xmlns:ogc="http://www.opengis.net/ogc&quot;
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation="http://www.opengis.net/wfs
                     http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
    <wfs:Query typeName="vai:locator">
      </wfs:Query>
  </wfs:GetFeature>

Jonathan Lister wrote:

Platform: Windows XP, Sun Java 1.6.0_04, GeoServer 1.6.1 war added to
GlassFish v2-b58g.
All GeoServer demo's run fine.

Created new Data Store to connect to Oracle 10g Enterprise Edition
10.2.0.3.0, connecting as a test user that owns a few demonstration tables.

Created a new Namespace, vai

Created a new FeatureType OraGIS:locator which is linked to VT_LOCATOR table
and vai Namespace

WMS requests for vai:locator works at first attempt - very nice :wink:

WFS is more problematic though:
GetCapabilities includes a section like this which looks OK to me:
<FeatureType>
  <Name>vai:locator</Name>
  <Title>VT_LOCATOR_Type</Title>
  <Abstract>Generated from OraGIS</Abstract>
  <ows:Keywords>
    <ows:Keyword>VT_LOCATOR</ows:Keyword>
    <ows:Keyword>OraGIS</ows:Keyword>
  </ows:Keywords>
  <DefaultSRS>urn:x-ogc:def:crs:EPSG:6.11.2:4326</DefaultSRS>
  <OutputFormats>
    <Format>GML2</Format>
    <Format>GML2-GZIP</Format>
    <Format>text/xml; subtype=gml/2.1.2</Format>
    <Format>text/xml; subtype=gml/3.1.1</Format>
    <Format>gml3</Format>
    <Format>SHAPE-ZIP</Format>
    <Format>json</Format>
  </OutputFormats>
  <ows:WGS84BoundingBox>
    <ows:LowerCorner>-120.996781797421 -39.3900722151593</ows:LowerCorner>
    <ows:UpperCorner>175.815709923708 63.9519345221582</ows:UpperCorner>
  </ows:WGS84BoundingBox>
</FeatureType>

DescribeFeature also looks OK:
<DescribeFeatureType
  version="1.1.0"
  service="WFS"
  xmlns="http://www.opengis.net/wfs&quot;
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt; <TypeName>vai:locator</TypeName>
</DescribeFeatureType>

results:
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://geo.myCompany.net/test&quot;&gt;
<xsd:import namespace="http://www.opengis.net/gml&quot;
schemaLocation="http://localhost:8080/geoserver/wfs/schemas/gml/3.1.1/base/gml.xsd&quot;/&gt;
  <xsd:complexType name="locatorType">
  <xsd:complexContent>
  <xsd:extension base="gml:AbstractFeatureType">
  <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="TARGET_ID" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_TYPE" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_NO" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_GEOMETRY"
nillable="true" type="gml:GeometryPropertyType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_ALTITUDE"
nillable="true" type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_START"
nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LOCATOR_END" nillable="true"
type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_STATUS"
nillable="true" type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="0" name="IS_PRIMARY" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="PARENT_ID" nillable="true"
type="xsd:decimal"/>
<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_NAME" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="LAST_MODIFIED"
nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="1" name="MODIFIED_BY" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="DESCRIPTION" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="COORDINATE_SYSTEM"
nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="VT_LOCATOR" substitutionGroup="gml:_Feature"
type="vai:locatorType"/>
</xsd:schema>

HOWEVER, I really struggled with GetFeature - shown here without a filter:

<wfs:GetFeature service="WFS" version="1.1.0"
  outputFormat="GML2"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/WFS-basic.xsd&quot;&gt;
  <wfs:Query typeName="vai:locator">
    </wfs:Query>
</wfs:GetFeature>

results in:
<ows:ExceptionReport version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/ows
http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd&quot;&gt;
  <ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.NullPointerException null</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

BUT, If I change just the first line of the request from wfs 1.1.0 to wfs
1.0.0 it all suddenly (well actually not so suddenly - there was about a day
of trying just about every other permutation and combination ..) springs
into life:

<wfs:GetFeature service="WFS" version="1.0.0"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:locator">
    </wfs:Query>
</wfs:GetFeature>

<wfs:FeatureCollection xsi:schemaLocation="http://geo.myCompany.net/test
http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=vai:locator
http://www.opengis.net/wfs
http://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd&quot;&gt;
  <gml:boundedBy>
  <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts=" ">-120.9967818,-39.39007222
175.81570992,63.95193452</gml:coordinates>
</gml:Box>
</gml:boundedBy>
  <gml:featureMember>
  <vai:locator fid="locator.317">
<vai:TARGET_ID>473</vai:TARGET_ID>
<vai:LOCATOR_TYPE>0</vai:LOCATOR_TYPE>
<vai:LOCATOR_NO>0</vai:LOCATOR_NO>
  <vai:LOCATOR_GEOMETRY>
  <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts="
">-3.46833,56.41806</gml:coordinates>
</gml:Point>
</vai:LOCATOR_GEOMETRY>
<vai:LOCATOR_ALTITUDE>20</vai:LOCATOR_ALTITUDE>
<vai:LOCATOR_START>2001-09-20T00:00:00</vai:LOCATOR_START>
<vai:LOCATOR_END>9999-12-31T00:00:00</vai:LOCATOR_END>
<vai:LOCATOR_STATUS>1</vai:LOCATOR_STATUS>
<vai:LAST_MODIFIED>2005-01-21T13:46:52</vai:LAST_MODIFIED>
<vai:MODIFIED_BY>WDF</vai:MODIFIED_BY>
<vai:DESCRIPTION>Location checked, WDF.</vai:DESCRIPTION>
<vai:COORDINATE_SYSTEM>WGS84</vai:COORDINATE_SYSTEM>
</vai:locator>
</gml:featureMember>
...

I suspect that I haven't properly set the featureType up - maybe something
to do with the nameSpace? or maybe I am making a stupid mistake in
requesting WFS 1.1.0 ?

n.b. stackTrace from failed WFS 1.1.0 request:

Request: getFeature
        handle = null
        service = WFS
        version = 1.1.0
        baseUrl = http://localhost:8080/geoserver/
        query = [net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null,
propertyName: null, function: null, filter: [ locator.56 ], sortBy: null,
featureVersion: null, handle: null, srsName: null, typeName:
[{http://geo.myCompany.net/test\}locator])]
        maxFeatures = null
        outputFormat = text/xml; subtype=gml/3.1.1
        resultType = results
        traverseXlinkDepth = null
        traverseXlinkExpiry = null
Result:
12 Mar 15:51:12 WARN [geoserver.ows] - java.lang.NullPointerException
        at
org.geotools.gml2.FeaturePropertyExtractor.properties(FeaturePropertyExtractor.java:60)
        at org.geotools.xml.Encoder.encode(Encoder.java:573)
        at org.geotools.xml.Encoder.encode(Encoder.java:320)
        at
org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:122)
        at
org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:137)
        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:615)
        at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:192)
        at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:69)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361)
        at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
12 Mar 15:51:12 INFO [geoserver.filters] - 127.0.0.1 "POST /geoserver/wfs"
took 672ms

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

I ran your test, and also tried a WFS connection from uDiG (see below) ..

Yes, the request below gives the same result:
<ows:ExceptionReport version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/ows
http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd&quot;&gt;
  <ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.NullPointerException null</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

Some extra trace / debug info:

first, loading the featureType / dataStore:

13 Mar 17:06:32 INFO [org.vfny.geoserver.global] - Loading feature type
'OraGIS:::VT_LOCATOR' (layer 5/15)
13 Mar 17:06:32 DEBUG [org.vfny.geoserver.global] - FeatureType
OraGIS:::VT_LOCATOR: loading feature type info dto:[FeatureTypeInfoDTO:
VT_LOCATOR, alias: locator, datastoreId: OraGIS, latLongBBOX:
Env[-120.996781797421 : 175.815709923708, -39.3900722151593 :
63.9519345221582]
  SRS: 4326, schema:[[AttributeTypeInfoDTO TARGET_ID minOccurs=1 maxOccurs=1
nillable=true type=decimal isComplex=false], [AttributeTypeInfoDTO
LOCATOR_TYPE minOccurs=1 maxOccurs=1 nillable=true type=decimal
isComplex=false], [AttributeTypeInfoDTO LOCATOR_NO minOccurs=1 maxOccurs=1
nillable=true type=decimal isComplex=false], [AttributeTypeInfoDTO
LOCATOR_GEOMETRY minOccurs=0 maxOccurs=1 nillable=true type=null
isComplex=false], [AttributeTypeInfoDTO LOCATOR_ALTITUDE minOccurs=0
maxOccurs=1 nillable=true type=decimal isComplex=false],
[AttributeTypeInfoDTO LOCATOR_START minOccurs=1 maxOccurs=1 nillable=true
type=string isComplex=false], [AttributeTypeInfoDTO LOCATOR_END minOccurs=1
maxOccurs=1 nillable=true type=string isComplex=false],
[AttributeTypeInfoDTO LOCATOR_STATUS minOccurs=0 maxOccurs=1 nillable=true
type=decimal isComplex=false], [AttributeTypeInfoDTO IS_PRIMARY minOccurs=0
maxOccurs=1 nillable=true type=string isComplex=false],
[AttributeTypeInfoDTO PARENT_ID minOccurs=0 maxOccurs=1 nillable=true
type=decimal isComplex=false], [AttributeTypeInfoDTO LOCATOR_NAME
minOccurs=0 maxOccurs=1 nillable=true type=string isComplex=false],
[AttributeTypeInfoDTO LAST_MODIFIED minOccurs=1 maxOccurs=1 nillable=true
type=string isComplex=false], [AttributeTypeInfoDTO MODIFIED_BY minOccurs=1
maxOccurs=1 nillable=true type=string isComplex=false],
[AttributeTypeInfoDTO DESCRIPTION minOccurs=0 maxOccurs=1 nillable=true
type=string isComplex=false], [AttributeTypeInfoDTO COORDINATE_SYSTEM
minOccurs=0 maxOccurs=1 nillable=true type=string isComplex=false]],
schemaName: null, dirName: OraGIS_VT_LOCATOR, title: VT_LOCATOR_Type
  definitionQuery: null, defaultStyle: point, legend icon: null, caching?:
false, max-age: , maxFeatures: 0
13 Mar 17:06:32 DEBUG [org.vfny.geoserver.global] - connection established
by DataStoreConfig[namespace=vai, enabled=true, abstract=null, connection
parameters={schema=SSSSSS, port=1521, passwd=******, dbtype=oracle,
host=192.168.40.nnn, validate connections=false, max connections=10,
instance=/icedb1.tmi.vaisala.com, user=icesys, min connections=4,
namespace=http://geo.myCompany.net/test\}]
13 Mar 17:06:32 DEBUG [org.vfny.geoserver.global] - locading datastore
VT_LOCATOR

then, making the request you suggested:
13 Mar 17:10:19 DEBUG [org.vfny.geoserver.requests] - First 4 bytes of XML
doc are : 3C ('<') 77 ('w') 66 ('f') 73 ('s')
13 Mar 17:10:19 DEBUG [org.vfny.geoserver.requests] - Charset detection
phase 1. Inferred encoding: UTF-8
13 Mar 17:10:19 DEBUG [org.vfny.geoserver.requests] - Invalid(?) XML
declaration: <wfs:G.
13 Mar 17:10:19 DEBUG [org.vfny.geoserver.requests] - Charset detection
phase 2. Charset in XML declaration is `null`.
13 Mar 17:10:19 DEBUG [org.vfny.geoserver.requests] - Trying to create
reader basing on existing charset information: `UTF-8`.
13 Mar 17:10:19 DEBUG [org.geoserver.ows] - Raw XML request starts with:
<wfs:GetFeature service="WFS" version="1.1.0"
    xmlns:vai="http://geo.myCompany.net/test&quot;
    xmlns:wfs="http://www.opengis.net/wfs&quot;
    xmlns:ogc="http://www.opengis.net/ogc&quot;
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation="http://www.opengis.net/wfs
                     http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
    <wfs:Query typeName="vai:locator">
      </wfs:Query>
  </wfs:GetFeature>
{ a line of unprintable characters here ..}

13 Mar 17:10:19 DEBUG [org.vfny.geoserver.requests] - Query is
net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null, propertyName: ,
function: null, filter: null, sortBy: , featureVersion: null, handle:
null, srsName: null, typeName: [{http://geo.myCompany.net/test\}locator])
To gt2: Query:
   feature type: locator
   filter: Filter.INCLUDE
   [properties: ALL ]
13 Mar 17:10:19 INFO [org.geoserver.wfs] -
Request: getFeature
        handle = null
        service = WFS
        version = 1.1.0
        baseUrl = http://localhost:8080/geoserver/
        query = [net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null,
propertyName: null, function: null, filter: null, sortBy: null,
featureVersion: null, handle: null, srsName: null, typeName:
[{http://geo.myCompany.net/test\}locator])]
        maxFeatures = null
        outputFormat = text/xml; subtype=gml/3.1.1
        resultType = results
        traverseXlinkDepth = null
        traverseXlinkExpiry = null
Result:
13 Mar 17:10:19 WARN [org.geoserver.ows] -
java.lang.NullPointerException
        at
org.geotools.gml2.FeaturePropertyExtractor.properties(FeaturePropertyExtractor.java:60)
        at org.geotools.xml.Encoder.encode(Encoder.java:573)
        at org.geotools.xml.Encoder.encode(Encoder.java:320)
        at
org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:122)
        at
org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:137)
        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:615)
        at
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:192)
        at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:69)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361)
        at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
13 Mar 17:10:20 INFO [org.geoserver.filters] - 127.0.0.1 "POST
/geoserver/wfs" took 1000ms
13 Mar 17:10:20 INFO [org.geoserver.filters] - Compressing output for
mimetype: application/xml
13 Mar 17:10:20 INFO [org.geoserver.filters] - 127.0.0.1 "POST
/geoserver/TestWfsPost" took 1125ms
13 Mar 17:10:20 INFO [org.geoserver.filters] - 127.0.0.1 "GET
/geoserver/images/gs.ico" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" ""
13 Mar 17:10:20 INFO [org.geoserver.filters] - 127.0.0.1 "GET
/geoserver/images/gs.ico" took 0ms
13 Mar 17:10:20 INFO [org.geoserver.filters] - 127.0.0.1 "GET
/geoserver/images/gs.ico" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" ""
13 Mar 17:10:20 INFO [org.geoserver.filters] - 127.0.0.1 "GET
/geoserver/images/gs.ico" took 0ms
13 Mar 17:10:20 ERROR [org.geotools.data.jdbc] - There's code leaving
readers, writers or iterators unclosed (you got an unclosed QueryData
object, which is usually held by a reader or a writer).
Call reader/writer.close() or FeatureCollection.close(iterator) after using
them to ensure they do not hold state such as JDCB connections.
QueryData was open against feature type: VT_LOCATOR

I'm wondering if I have made a snafu with the namespace - I tried making a
WFS connection from uDiG, and get :

13 Mar 17:18:59 INFO [org.geoserver.filters] - 127.0.0.1 "POST
/geoserver/wfs" "uDig 1.1-RC14 (http://udig.refractions.net) Java/1.6.0_02"
""
13 Mar 17:18:59 DEBUG [org.vfny.geoserver.requests] - First 4 bytes of XML
doc are : 3C ('<') 3F ('?') 78 ('x') 6D ('m')
13 Mar 17:18:59 DEBUG [org.vfny.geoserver.requests] - Charset detection
phase 1. Inferred encoding: UTF-8
13 Mar 17:18:59 DEBUG [org.vfny.geoserver.requests] - Charset detection
phase 2. Charset in XML declaration is `UTF-8`.
13 Mar 17:18:59 DEBUG [org.vfny.geoserver.requests] - Trying to create
reader basing on existing charset information: `UTF-8`.
13 Mar 17:18:59 DEBUG [org.geoserver.ows] - Raw XML request starts with:
<?xml version="1.0" encoding="UTF-8"?>
<GetFeature xmlns="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:ogc="http://www.opengis.net/ogc&quot; version="1.0.0" service="WFS"
outputFormat="GML2"><Query
typeName="vai:locator"><ogc:PropertyName>LOCATOR_GEOMETRY</ogc:PropertyName>
<ogc:Filter><ogc:And><ogc:BBOX><ogc:PropertyName>LOCATOR_GEOMETRY</ogc:PropertyName>
<gml:Box><gml:coordinates decimal="." cs="," ts="
">-74.03545476834493,40.73720767480823
-73.99308040101586,40.75714855355133</gml:coordinates>
</gml:Box>
</ogc:BBOX>
<ogc:Or><ogc:Or><ogc:Or><ogc:Or><ogc:Or><ogc:Or><ogc:PropertyIsEqualTo><ogc:Function
name="geometryType"><ogc:PropertyName>LOCATOR_GEOMETRY</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>Point</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsEqualTo><ogc:Function
name="geometryType"><ogc:PropertyName>LOCATOR_GEOMETRY</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>MultiPoint</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
<ogc:PropertyIsEqualTo><ogc:Function name...
13 Mar 17:18:59 WARN [org.geoserver.ows] -
java.lang.RuntimeException: Parsing failed for typeName:
java.lang.IllegalArgumentException: prefix vai is not bound to a namespace
        at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:142)
        at
org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:197)
        at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:163)
        at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:167)
...

Changing the featureType's schema base from '-' to gml:AbstractFeatureType
didn't bring any change either.

jdeolive-2 wrote:

Hi Jonathan,

Thanks for the complete bug report. Its not obvious to me what is the
problem. If you could perhaps change logging to
GEOTOOLS_DEVELOPER_LOGGING and include the log that would be helpful.

Also, could you try the following request and see if it produces the
same result. Thanks.

  <wfs:GetFeature service="WFS" version="1.1.0"
    xmlns:vai="http://geo.myCompany.net/test&quot;
    xmlns:wfs="http://www.opengis.net/wfs&quot;
    xmlns:ogc="http://www.opengis.net/ogc&quot;
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation="http://www.opengis.net/wfs
                     http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
    <wfs:Query typeName="vai:locator">
      </wfs:Query>
  </wfs:GetFeature>

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16032819.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

More diagnostics - I can get a WFS 1.1.0 request to work IF I request the
output format to be GML2

<wfs:GetFeature service="WFS" version="1.1.0"
  outputFormat="GML2"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:locator">
    <ogc:Filter>
       <ogc:FeatureId fid="locator.56"/>
    </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

Works fine:

<wfs:FeatureCollection xsi:schemaLocation="http://geo.myCompany.net/test
http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=vai:locator
http://www.opengis.net/wfs
http://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd&quot;&gt;
  <gml:boundedBy>
  <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts=" ">55.125,-1.67361
55.125,-1.67361</gml:coordinates>
</gml:Box>
</gml:boundedBy>
  <gml:featureMember>
  <vai:locator fid="locator.56">
<vai:TARGET_ID>1</vai:TARGET_ID>
<vai:LOCATOR_TYPE>0</vai:LOCATOR_TYPE>
<vai:LOCATOR_NO>0</vai:LOCATOR_NO>
  <vai:LOCATOR_GEOMETRY>
  <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts=" ">55.125,-1.67361</gml:coordinates>
</gml:Point>
</vai:LOCATOR_GEOMETRY>
<vai:LOCATOR_ALTITUDE>65</vai:LOCATOR_ALTITUDE>
<vai:COORDINATE_SYSTEM>WGS84</vai:COORDINATE_SYSTEM>
<vai:LOCATOR_START>2001-09-20T00:00:00</vai:LOCATOR_START>
<vai:LOCATOR_END>9999-12-31T00:00:00</vai:LOCATOR_END>
<vai:LOCATOR_STATUS>1</vai:LOCATOR_STATUS>
<vai:DESCRIPTION>Location checked, WDF.</vai:DESCRIPTION>
<vai:LAST_MODIFIED>2005-01-27T19:04:01</vai:LAST_MODIFIED>
<vai:MODIFIED_BY>WDF</vai:MODIFIED_BY>
</vai:locator>
</gml:featureMember>
</wfs:FeatureCollection>

outputFormats that work include:
json
text/xml; subtype=gml/2.1.2

outputFormats that fail include:
text/xml; subtype=gml/3.1.1
gml3

Is it possible that a particular column type in the Oracle table is causing
problems when geoServer tries to convert to gml3?

Jonathan Lister wrote:

I ran your test, and also tried a WFS connection from uDiG (see below) ..

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16047307.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Hi Jonathan,

Yes, its possible that its your data that the gml3 encoder can not handle. Is there any chance you can make a dump of your table available? I admit, Oracle is not my forte but i can try setting it up on my end to see if i can replicate the problem.

-Justin

Jonathan Lister wrote:

More diagnostics - I can get a WFS 1.1.0 request to work IF I request the
output format to be GML2

<wfs:GetFeature service="WFS" version="1.1.0"
  outputFormat="GML2"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:locator">
    <ogc:Filter>
       <ogc:FeatureId fid="locator.56"/>
    </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

Works fine:

<wfs:FeatureCollection xsi:schemaLocation="http://geo.myCompany.net/test
http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=vai:locator
http://www.opengis.net/wfs
http://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd&quot;&gt;
  <gml:boundedBy>
  <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts=" ">55.125,-1.67361
55.125,-1.67361</gml:coordinates>
</gml:Box>
</gml:boundedBy>
  <gml:featureMember>
  <vai:locator fid="locator.56">
<vai:TARGET_ID>1</vai:TARGET_ID>
<vai:LOCATOR_TYPE>0</vai:LOCATOR_TYPE>
<vai:LOCATOR_NO>0</vai:LOCATOR_NO>
  <vai:LOCATOR_GEOMETRY>
  <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts=" ">55.125,-1.67361</gml:coordinates>
</gml:Point>
</vai:LOCATOR_GEOMETRY>
<vai:LOCATOR_ALTITUDE>65</vai:LOCATOR_ALTITUDE>
<vai:COORDINATE_SYSTEM>WGS84</vai:COORDINATE_SYSTEM>
<vai:LOCATOR_START>2001-09-20T00:00:00</vai:LOCATOR_START>
<vai:LOCATOR_END>9999-12-31T00:00:00</vai:LOCATOR_END>
<vai:LOCATOR_STATUS>1</vai:LOCATOR_STATUS>
<vai:DESCRIPTION>Location checked, WDF.</vai:DESCRIPTION>
<vai:LAST_MODIFIED>2005-01-27T19:04:01</vai:LAST_MODIFIED>
<vai:MODIFIED_BY>WDF</vai:MODIFIED_BY>
</vai:locator>
</gml:featureMember>
</wfs:FeatureCollection>

outputFormats that work include:
json
text/xml; subtype=gml/2.1.2

outputFormats that fail include:
text/xml; subtype=gml/3.1.1
gml3

Is it possible that a particular column type in the Oracle table is causing
problems when geoServer tries to convert to gml3?

Jonathan Lister wrote:

I ran your test, and also tried a WFS connection from uDiG (see below) ..

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

I upgraded to GeoServer 1.6.2a, re-configured nameSpace, dataStore,
featureType from scratch, created a new geometry table with the minimum
columns and just a couple of rows - still get the same result, i.e. WFS
1.0.0 request is OK, but WFS 1.1.0 doesn't work unless GML2 is specified for
outputFormat. Does this imply that I can't use Oracle with GeoServer / WFS
1.1.0 / gml3?

I guess I'll have to try same data in postGIS next ..

CREATE TABLE test_table (
  test_id NUMBER PRIMARY KEY,
  test_name VARCHAR2(32),
  test_geom SDO_GEOMETRY);

INSERT INTO test_table VALUES(
  1,
  'first point',
  SDO_GEOMETRY(
    2001, -- two-dimensional point
    NULL, --8307, -- srid = 8307 == WGS84
    NULL,
    SDO_ELEM_INFO_ARRAY(1, 1, 1),
    SDO_ORDINATE_ARRAY(-2.33556, 53.75083)
  )
);

INSERT INTO test_table VALUES(
  2,
  'second point',
  SDO_GEOMETRY(
    2001, -- two-dimensional point
    NULL, -- srid = 8307 == WGS84
    NULL,
    SDO_ELEM_INFO_ARRAY(1, 1, 1),
    SDO_ORDINATE_ARRAY(-3.33556, 54.75083)
  )
);

-- must do this before we can create spatial index..
INSERT INTO user_sdo_geom_metadata
    (TABLE_NAME,
     COLUMN_NAME,
     DIMINFO,
     SRID)
  VALUES (
  'test_table',
  'test_geom',
   SDO_DIM_ARRAY(
     SDO_DIM_ELEMENT('Longitude', -180, 180, .5),
     SDO_DIM_ELEMENT('Latitude', -90, 90, .5)),
  NULL --8307 -- SRID
);

CREATE INDEX test_spatial_idx
   ON test_table(test_geom)
   INDEXTYPE IS MDSYS.SPATIAL_INDEX;

request:
<wfs:GetFeature service="WFS" version="1.1.0"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:test">
    <ogc:Filter>
       <ogc:FeatureId fid="test.1"/>
    </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

result:
<ows:ExceptionReport version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/ows
http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd&quot;&gt;
  <ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.NullPointerException null</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

request:
<wfs:GetFeature service="WFS" version="1.0.0"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:test">
    <ogc:Filter>
       <ogc:FeatureId fid="test.1"/>
    </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

result:
<wfs:FeatureCollection xsi:schemaLocation="http://geo.myCompany.net/test
http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=vai:test
http://www.opengis.net/wfs
http://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd&quot;&gt;
  <gml:boundedBy>
  <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts=" ">-2.33556,53.75083
-2.33556,53.75083</gml:coordinates>
</gml:Box>
</gml:boundedBy>
  <gml:featureMember>
  <vai:test fid="test.1">
<vai:TEST_NAME>first point</vai:TEST_NAME>
  <vai:TEST_GEOM>
  <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coordinates decimal="." cs="," ts="
">-2.33556,53.75083</gml:coordinates>
</gml:Point>
</vai:TEST_GEOM>
</vai:test>
</gml:featureMember>
</wfs:FeatureCollection>

Jonathan Lister wrote:

More diagnostics - I can get a WFS 1.1.0 request to work IF I request the
output format to be GML2

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16048600.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Jonathan Lister ha scritto:

I upgraded to GeoServer 1.6.2a, re-configured nameSpace, dataStore,
featureType from scratch, created a new geometry table with the minimum
columns and just a couple of rows - still get the same result, i.e. WFS
1.0.0 request is OK, but WFS 1.1.0 doesn't work unless GML2 is specified for
outputFormat. Does this imply that I can't use Oracle with GeoServer / WFS
1.1.0 / gml3?

I guess I'll have to try same data in postGIS next ..

Before you try that out, I have a hunch about what's going on.
Can you try one thing for me?

CREATE TABLE test_table (
  test_id NUMBER PRIMARY KEY,
  test_name VARCHAR2(32),
  test_geom SDO_GEOMETRY);

...

CREATE INDEX test_spatial_idx
   ON test_table(test_geom)
   INDEXTYPE IS MDSYS.SPATIAL_INDEX;

With this setup there is no way GeoServer can be sure of what
type of geometry is in that column, and in fact the describe
feature type results in:

<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_GEOMETRY"
nillable="true" type="gml:GeometryPropertyType"/>

I'm not sure about it, but it may be that the GML3 encoder
does not work under these conditions (generic geometry type).
If so, we should fix it, since it's actually possible to stop
a mix of different geometry types in the same geometry column
in Oracle.

Yet, I see your data are all points. If that's the case,
recreate your index to enforce the geometry type

CREATE INDEX test_spatial_idx
     ON test_table(test_geom)
     INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=2 LAYER_GTYPE="POINT"')

This way Oracle will enforce point type and GeoServer will
use this information in the feature type reverse engineering,
declaring the LOCATOR_GEOMETRY as Point type... and I guess
GML3 output will work that way too.

Ah, I also have a curiosity. WFS 1.1/GML3 are relatively new
and there is quite a lack of clients able to speak that
version of the protocol, in fact I know none...
All the WFS clients I know of do use WFS 1.1 and GML2, do
you know of any that already use WFS 1.1?

Cheers
Andrea

Andrea Aime ha scritto:
...

I'm not sure about it, but it may be that the GML3 encoder
does not work under these conditions (generic geometry type).
If so, we should fix it, since it's actually possible to stop
a mix of different geometry types in the same geometry column
in Oracle.

"stop a mix"... what was I thinking???
that should have been "put a mix"

Cheers
Andrea

Ah, I also have a curiosity. WFS 1.1/GML3 are relatively new
and there is quite a lack of clients able to speak that
version of the protocol, in fact I know none...
All the WFS clients I know of do use WFS 1.1 and GML2, do
you know of any that already use WFS 1.1?

Yes, OpenJUMP with WFS plugin. The history of that plugin is that an
previously existing plugin was further developed against Geoserver
1.5 (WFS 1.0 + GML2), and it works fine against it supporting menu based
filter building for both attribute and spatial queries, editable http POST
query preview window. An undocumented feature is that it can also be used
in standalone mode when the GML returned from the server can be stored
into file even if it has something off that prevents it to be parsed
to OpenJUMP GIS as a map. Only problem that I remember right now that
was left was some error in date/time type attribute parsing when
there was Oracle spatial on the background. My knowledge comes only from
being involved in ordering the work and making acceptance testing but about
technics behind I know only that is is Java and utilises deegree libraries.

After that WFS plugin has been developed further to support WFS-T
1.1 with GML3 with deegree. Unfortunately the plugin does not work
against Geoserver WFS 1.1 because of the way that Geoserver is using
in advertising the coordinate reference system.

I believe that not very much work would be needed to make OpenJUMP plugin to
support even WFS-T 1.1 with Geoserver, but most efficiently the development
work would be if done in co-operation with the deegree folks.

-Jukka Rahkonen-

Rahkonen Jukka ha scritto:

Ah, I also have a curiosity. WFS 1.1/GML3 are relatively new
and there is quite a lack of clients able to speak that
version of the protocol, in fact I know none...
All the WFS clients I know of do use WFS 1.1 and GML2, do
you know of any that already use WFS 1.1?

Yes, OpenJUMP with WFS plugin. The history of that plugin is that an previously existing plugin was further developed against Geoserver
1.5 (WFS 1.0 + GML2), and it works fine against it supporting menu based
filter building for both attribute and spatial queries, editable http POST
query preview window.

Interesting, I really need to have a look at it.

An undocumented feature is that it can also be used
in standalone mode when the GML returned from the server can be stored into file even if it has something off that prevents it to be parsed to OpenJUMP GIS as a map. Only problem that I remember right now that was left was some error in date/time type attribute parsing when there was Oracle spatial on the background. My knowledge comes only from being involved in ordering the work and making acceptance testing but about technics behind I know only that is is Java and utilises deegree libraries.

After that WFS plugin has been developed further to support WFS-T 1.1 with GML3 with deegree. Unfortunately the plugin does not work against Geoserver WFS 1.1 because of the way that Geoserver is using in advertising the coordinate reference system.

Hum, interesting... why is that? The way we report the srs (you mean
the urn form?) is mandated by the standard. There is also the axis flipping issue, that as well is mandated by the standard (for more info
on the axis order issue see here: http://geoserver.org/display/GEOSDOC/2.+WFS)

I believe that not very much work would be needed to make OpenJUMP plugin to
support even WFS-T 1.1 with Geoserver, but most efficiently the development work would be if done in co-operation with the deegree folks.

Eh, we have quite a bit of community clash here, and also I'm not an OpenJump user, but I'm interested in any collaboration that brings
a new client to the mix, the more, the merrier.

Cheers
Andrea

Andrea Aime wrote:

Yes, OpenJUMP with WFS plugin. The history of that plugin is that an
previously existing plugin was further developed against Geoserver
1.5 (WFS 1.0 + GML2), and it works fine against it supporting menu based
filter building for both attribute and spatial queries, editable http POST
query preview window.

Interesting, I really need to have a look at it.

Hi Andrea,

The following information would belong better to OpenJUMP web page, but if you are really going to have a look at OpenJUMP WFS plugin this will help you to get a quick start. Anyway this message has a connection to Geoserver because the plugin was developed against Geoserver and it works well as non-transactional WFS 1.0 client with Geoserver. I believe the same is true with deegree as well but unfortunately not with UMN MapServer WFS.

-Jukka Rahkonen-

Installation instruction follows:

1.Download and install OpenJUMP from http://openjump.org. I recommend the weekly build.
2.Download WFS plugin. The link from OpenJUMP page leads to
http://sourceforge.net/project/showfiles.php?group_id=118054&package_id=150819
This plugin supports actully just non transactional WFS 1.0. It works well with Geoserver WFS 1.0. It there should be some errors in parsing, the 0.3.0 version of the plugin is a bit more robust in parsing. Actually it is parsing all attribute types to strings.

Another place to load WFS plugin for OpenJUMP is
https://wiki.deegree.org/deegreeWiki/deeJUMP?action=AttachFile&do=get&target=wfsplugin.jar

The latter one is the one supporting also WFS-T 1.1.0, but not with Geoserver at the moment because of the urn format used in projection naming. Axis flipping in WFS 1.1.0 should not be a problem.
For more information read https://wiki.deegree.org/deegreeWiki/deeJUMP

Installation instructions for basic use can be found from the previous addresses. Basically all that is needed is to download the jar-files and insert them to correct directories. After that the WFS plugin will be available through OpenJUMP GIS.

It is possible to run WFS plugin also as stand alone. It gives an extra feature to capture the response from the WFS server before it goes to parser. I have found this valuable for debugging. This has been on undocumented feature so far, so here are some hints about how to use it.

To start WFS-plugin as stand-alone make first a normal plugin installation because some of the OpenJUMP jars will be needed. Then define a classpath to include all WFS plugin jars and jts, jump-api, and logging jars from OpenJUMP directory. Here is a Windows batch file that starts the plugin for me. Other users will need to edit some jar names to suit the reality.

set LIB= openjump/lib
set CLASSPATH=%LIB%/ext/commons-codec-1.3.jar;%LIB%/ext/commons-httpclient-2.0.2-deegreeversion.jar;%LIB%/ext/commons-logging.jar;%LIB%/ext/deegree2.jar;%LIB%/ext/vecmath.jar;%LIB%/ext/wfsplugin.jar;%LIB%/jts-1.7.2.jar;%LIB%/jump-api-20070503.jar;%LIB%/log4j-1.2.8.jar
set PATH=%PATH%;%LIB%/ext
start javaw -Xms256M -Xmx512M -cp %CLASSPATH% de.latlon.deejump.plugin.wfs.WFSFrame http://demo.intevation.de/geoserver/wfs

I re-created the index as you suggested, and describe Feature Type now
reports a point PropertyType:

<xsd:schema elementFormDefault="qualified"
targetNamespace="http://geo.myCompany.net/test&quot;&gt;
<xsd:import namespace="http://www.opengis.net/gml&quot;
schemaLocation="http://localhost:8080/geoserver/wfs/schemas/gml/3.1.1/base/gml.xsd&quot;/&gt;
  <xsd:complexType name="testType">
  <xsd:complexContent>
  <xsd:extension base="gml:AbstractFeatureType">
  <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="TEST_NAME" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="TEST_GEOM" nillable="true"
type="gml:PointPropertyType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="TEST_TABLE" substitutionGroup="gml:_Feature"
type="vai:testType"/>
</xsd:schema>

However, the WFS 1.1.0 request still fails with same message.

17 Mar 11:41:30 DEBUG [org.geoserver.ows] - Raw XML request starts with:
<wfs:GetFeature service="WFS" version="1.1.0"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:test">
    <ogc:Filter>
       <ogc:FeatureId fid="test.1"/>
    </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

17 Mar 11:41:30 DEBUG [org.vfny.geoserver.requests] - Query is
net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null, propertyName: ,
function: null, filter: [ test.1 ], sortBy: , featureVersion: null,
handle: null, srsName: null, typeName:
[{http://geo.myCompany.net/test\}test])
To gt2: Query:
   feature type: test
   filter: [ test.1 ]
   [properties: ALL ]
17 Mar 11:41:30 INFO [org.geoserver.wfs] -
Request: getFeature
        handle = null
        service = WFS
        version = 1.1.0
        baseUrl = http://localhost:8080/geoserver/
        query = [net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null,
propertyName: null, function: null, filter: [ test.1 ], sortBy: null,
featureVersion: null, handle: null, srsName: null, typeName:
[{http://geo.myCompany.net/test\}test])]
        maxFeatures = null
        outputFormat = text/xml; subtype=gml/3.1.1
        resultType = results
        traverseXlinkDepth = null
        traverseXlinkExpiry = null
Result:
17 Mar 11:41:30 WARN [org.geoserver.ows] -
java.lang.NullPointerException
        at
org.geotools.gml2.FeaturePropertyExtractor.properties(FeaturePropertyExtractor.java:60)
        at org.geotools.xml.Encoder.encode(Encoder.java:573)
        at org.geotools.xml.Encoder.encode(Encoder.java:320)
        at
org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:122)
        at
org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:137)
        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:615)

aaime wrote:

Before you try that out, I have a hunch about what's going on.
Can you try one thing for me?

CREATE TABLE test_table (
  test_id NUMBER PRIMARY KEY,
  test_name VARCHAR2(32),
  test_geom SDO_GEOMETRY);

...

CREATE INDEX test_spatial_idx
   ON test_table(test_geom)
   INDEXTYPE IS MDSYS.SPATIAL_INDEX;

With this setup there is no way GeoServer can be sure of what
type of geometry is in that column, and in fact the describe
feature type results in:

<xsd:element maxOccurs="1" minOccurs="0" name="LOCATOR_GEOMETRY"
nillable="true" type="gml:GeometryPropertyType"/>

I'm not sure about it, but it may be that the GML3 encoder
does not work under these conditions (generic geometry type).
If so, we should fix it, since it's actually possible to stop
a mix of different geometry types in the same geometry column
in Oracle.

Yet, I see your data are all points. If that's the case,
recreate your index to enforce the geometry type

CREATE INDEX test_spatial_idx
     ON test_table(test_geom)
     INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=2
LAYER_GTYPE="POINT"')

This way Oracle will enforce point type and GeoServer will
use this information in the feature type reverse engineering,
declaring the LOCATOR_GEOMETRY as Point type... and I guess
GML3 output will work that way too.

Ah, I also have a curiosity. WFS 1.1/GML3 are relatively new
and there is quite a lack of clients able to speak that
version of the protocol, in fact I know none...
All the WFS clients I know of do use WFS 1.1 and GML2, do
you know of any that already use WFS 1.1?

Cheers
Andrea

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16092153.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Maybe one more clue .. I rectreated entries in the test table with an
explicit SRID, now when making a WFS 1.1.0 request I get a slightly more
meaningful error:

<ows:ExceptionReport version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/ows
http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd&quot;&gt;
  <ows:Exception exceptionCode="NoApplicableCode">
  <ows:ExceptionText>
We have had issues trying to flip
      axis of GEOGCS[&quot;Longitude / Latitude (WGS
      84)&quot;, DATUM[&quot;WGS 84&quot;,
      SPHEROID[&quot;WGS 84&quot;, 6378137.0,
      298.257223563]],
      PRIMEM[&quot;Greenwich&quot;, 0.0],
      UNIT[&quot;degree&quot;,
      0.017453292519943295],
      AXIS[&quot;Longitude&quot;, EAST],
      AXIS[&quot;Latitude&quot;, NORTH]] No code
      &quot;EPSG:NULL&quot; from authority
      &quot;European Petroleum Survey Group&quot;
      found for object of type &quot;IdentifiedObject&quot;.
</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

INSERT INTO test_table VALUES(
  1,
  'first point',
  SDO_GEOMETRY(
    2001, -- two-dimensional point
    8307, -- srid = 8307 == WGS84
    NULL,
    SDO_ELEM_INFO_ARRAY(1, 1, 1),
    SDO_ORDINATE_ARRAY(-2.33556, 53.75083)
  )
);

INSERT INTO user_sdo_geom_metadata
    (TABLE_NAME,
     COLUMN_NAME,
     DIMINFO,
     SRID)
  VALUES (
  'test_table',
  'test_geom',
   SDO_DIM_ARRAY(
     SDO_DIM_ELEMENT('Longitude', -180, 180, .5),
     SDO_DIM_ELEMENT('Latitude', -90, 90, .5)),
  8307 -- SRID
);

-- alternate index FORCING point type to help GeoServer / GML3..
CREATE INDEX test_spatial_idx
     ON test_table(test_geom)
     INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=2
LAYER_GTYPE="POINT"')

Jonathan Lister wrote:

I re-created the index as you suggested, and describe Feature Type now
reports a point PropertyType:
However, the WFS 1.1.0 request still fails with same message.

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16119068.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Jonathan Lister ha scritto:

Maybe one more clue .. I rectreated entries in the test table with an
explicit SRID, now when making a WFS 1.1.0 request I get a slightly more
meaningful error:

I've tried out the same statemetns you suggested, without setting
the SRS in my geometries (so not the latest version) and WFS GetFeature
seems to work just fine?

Request:
<wfs:GetFeature service="WFS" version="1.1.0"
   xmlns:topp="http://www.openplans.org/topp&quot;
   xmlns:wfs="http://www.opengis.net/wfs&quot;
   xmlns:ogc="http://www.opengis.net/ogc&quot;
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
   xsi:schemaLocation="http://www.opengis.net/wfs
                       http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
   <wfs:Query typeName="topp:TEST_TABLE">
     </wfs:Query>
</wfs:GetFeature>

Response (reformatted for readability):
<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection numberOfFeatures="2"
   timeStamp="2008-03-18T16:35:28.437+01:00"
   xsi:schemaLocation="http://www.openplans.org/topp http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.1.0&amp;request=DescribeFeatureType&amp;typeName=topp:TEST_TABLE http://www.opengis.net/wfs http://localhost:8080/geoserver/schemas/wfs/1.1.0/wfs.xsd&quot;
   xmlns:ogc="http://www.opengis.net/ogc&quot;
   xmlns:tiger="http://www.census.gov"
   xmlns:wfs="http://www.opengis.net/wfs&quot;
   xmlns:topp="http://www.openplans.org/topp&quot;
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
   xmlns:sf="http://www.openplans.org/spearfish&quot;
   xmlns:ows="http://www.opengis.net/ows&quot;
   xmlns:gml="http://www.opengis.net/gml&quot;
   xmlns:xlink="http://www.w3.org/1999/xlink&quot;&gt;
   <gml:featureMembers>
     <topp:TEST_TABLE gml:id="TEST_TABLE.1">
       <gml:boundedBy>
         <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326">
           <gml:lowerCorner>53.75083 -2.33556</gml:lowerCorner>
           <gml:upperCorner>53.75083 -2.33556</gml:upperCorner>
         </gml:Envelope>
       </gml:boundedBy>
       <topp:TEST_NAME>first point</topp:TEST_NAME>
       <topp:TEST_GEOM>
         <gml:Point srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326">
           <gml:pos>53.75083 -2.33556</gml:pos>
         </gml:Point>
       </topp:TEST_GEOM>
     </topp:TEST_TABLE>
     <topp:TEST_TABLE gml:id="TEST_TABLE.2">
       <gml:boundedBy>
         <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326">
           <gml:lowerCorner>54.75083 -3.33556</gml:lowerCorner>
           <gml:upperCorner>54.75083 -3.33556</gml:upperCorner>
         </gml:Envelope>
       </gml:boundedBy>
       <topp:TEST_NAME>second point</topp:TEST_NAME>
       <topp:TEST_GEOM>
         <gml:Point srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326">
           <gml:pos>54.75083 -3.33556</gml:pos>
         </gml:Point>
       </topp:TEST_GEOM>
     </topp:TEST_TABLE>
   </gml:featureMembers>
</wfs:FeatureCollection>

I'm using Oracle Express, besides that... not sure. I also
did set 4326 as the SRS in the feature type configuration, but
I really haven't done anything else...

Cheers
Andrea

I have now moved from Oracle to postGIS (postGIS 1.3.2 on posgtres 8.1);
however I'm still getting the same problems. Must be doing something really
stupid somewhere, but I can't see what - any suggestions really appreciated!

CREATE TABLE test_roads (
  road_id INTEGER,
  road_name VARCHAR
);

SELECT AddGeometryColumn( 'test_roads', 'roads_geom', 4326, 'LINESTRING', 2
);

ALTER TABLE test_roads
  ADD CONSTRAINT geometry_valid_check
    CHECK (isvalid(roads_geom));

CREATE INDEX gist_idx ON test_roads USING GIST ( roads_geom );

INSERT INTO test_roads (road_id, roads_geom, road_name)
  VALUES (1,GeomFromText('LINESTRING(5.175501 51.19112, 5.178481
51.19539)',4326),'Jeff Rd');
INSERT INTO test_roads (road_id, roads_geom, road_name)
  VALUES (2,GeomFromText('LINESTRING(4.839782 50.98549, 4.839955
50.98548)',4326),'Geordie Rd');
INSERT INTO test_roads (road_id, roads_geom, road_name)
  VALUES (3,GeomFromText('LINESTRING(4.839955 50.98548, 4.840147
50.98547)',4326),'Paul St');

The featureType looks reasonable in getCapabilities:

<FeatureType>
<Name>vai:tr</Name>
<Title>test_roads_Type</Title>
<Abstract>Generated from postGIS_local</Abstract>
  <ows:Keywords>
    <ows:Keyword>postGIS_local</ows:Keyword>
    <ows:Keyword>test_roads</ows:Keyword>
  </ows:Keywords>
  <DefaultSRS>urn:x-ogc:def:crs:EPSG:6.11.2:4326</DefaultSRS>
  <OutputFormats>
    <Format>GML2</Format>
    <Format>GML2-GZIP</Format>
    <Format>text/xml; subtype=gml/2.1.2</Format>
    <Format>text/xml; subtype=gml/3.1.1</Format>
    <Format>gml3</Format>
    <Format>SHAPE-ZIP</Format>
    <Format>json</Format>
  </OutputFormats>
  <ows:WGS84BoundingBox>
    <ows:LowerCorner>4.839782 50.98503</ows:LowerCorner>
    <ows:UpperCorner>5.178481 51.19539</ows:UpperCorner>
  </ows:WGS84BoundingBox>
</FeatureType>

However a WFS 1.1.0 getFeature still fails:
<wfs:GetFeature service="WFS" version="1.1.0"
  xmlns:vai="http://geo.myCompany.net/test&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
  <wfs:Query typeName="vai:tr">
  </wfs:Query>
</wfs:GetFeature>

result:
<ows:ExceptionReport version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/ows
   
http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd&quot;&gt;
  <ows:Exception exceptionCode="NoApplicableCode">
    <ows:ExceptionText>java.lang.NullPointerException
null</ows:ExceptionText>
  </ows:Exception>
</ows:ExceptionReport>

extract from GeoServer log:
20 Mar 17:25:28 DEBUG [data.jdbc] - About to execute query: SELECT
"road_id", "road_name",
encode(asBinary(force_2d("roads_geom"),'XDR'),'base64') FROM
"public"."test_roads"
20 Mar 17:25:28 DEBUG [geotools.xml] - _Feature is abstract
20 Mar 17:25:28 WARN [geoserver.ows] -
java.lang.NullPointerException
        at
org.geotools.gml2.FeaturePropertyExtractor.properties(FeaturePropertyExtractor.java:60)
        at org.geotools.xml.Encoder.encode(Encoder.java:573)
        at org.geotools.xml.Encoder.encode(Encoder.java:320)
        at
org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:122)
        at
org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:137)
        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:615)

If I copy / paste the select into pgAdmin I get a sensible response:

SELECT "road_id", "road_name",
encode(asBinary(force_2d("roads_geom"),'XDR'),'base64') FROM
"public"."test_roads"

1;"Jeff Rd";"AAAAAAIAAAACQBSztoi9qUNASZh2nsLORkAUtsO5J9RaQEmZAood+5Q="
2;"Geordie Rd";"AAAAAAIAAAACQBNb79AHE/BASX4kiUxEfEATXB0p3HJcQEl+JDVpblk="
3;"Paul St";"AAAAAAIAAAACQBNcHSncclxASX4kNWluWUATXE9+w1R+QEl+I+GGmDU="
4;"Graeme Ave";"AAAAAAIAAAACQBNcHSncclxASX4kNWluWUATXD4xk/bCQEl+FXaJyhk="
5;"Phil Tce";"AAAAAAIAAAACQBNcTBZZB9lASX4/u9eyA0ATXB0p3HJcQEl+JDVpblk="
6;"Dave Cres";"AAAAAAIAAAACQBNchcJMQEpASX5WBBiTdUATXGcWj45+QEl+SowVTJg="

As with previous example, changing WFS 1.1.0 to WFS 1.0.0 and / or
requesting GML2 then all is OK.

Finally, if I try to display this FeatureType as a layer in uDiG, uDiG fails
with a renderingProblem [Request All Features], but uDiG successfully
displays all road)id and road_names in tabular display.

relevant section of GeoServer log when making uDiG request:
<GetFeature xmlns="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot; version="1.0.0" service="WFS"
outputFormat="GML2">
  <Query typeName="vai:tr">
  <ogc:PropertyName>roads_geom</ogc:PropertyName>
    <ogc:Filter>
      <ogc:And>
      <ogc:BBOX>
        <ogc:PropertyName>roads_geom</ogc:PropertyName>
        <gml:Box><gml:coordinates decimal="." cs="," ts="
">4.839782,50.98503
            5.178481,51.19539</gml:coordinates>
        </gml:Box>
      </ogc:BBOX>
      <ogc:Or><ogc:Or><ogc:Or><ogc:Or><ogc:Or><ogc:Or>
      <ogc:PropertyIsEqualTo>
        <ogc:Function name="geometryType">
          <ogc:PropertyName>roads_geom</ogc:PropertyName>
        </ogc:Function>
      <ogc:Literal>Point</ogc:Literal>
      </ogc:PropertyIsEqualTo>
      <ogc:PropertyIsEqualTo>
        <ogc:Function name="geometryType">
        <ogc:PropertyName>roads_geom</ogc:PropertyName>
      </ogc:Function>
      <ogc:Literal>MultiPoint</ogc:Literal>
      </ogc:PropertyIsEqualTo>
      </ogc:Or>
      <ogc:PropertyIsEqualTo>
      <ogc:Function name="geometryType">
         <ogc:PropertyName>roads_geom</ogc:PropertyName>
      </o...

20 Mar 17:52:15 DEBUG [geoserver.requests] - checking to see if [roads_geom]
contains[AttributeTypeInfo backed by [AttributeTypeInfoDTO road_id
minOccurs=0 maxOccurs=1 nillable=true type=int isComplex=false] with type
null and meta {}
20 Mar 17:52:15 DEBUG [geoserver.requests] - checking to see if [roads_geom]
contains[AttributeTypeInfo backed by [AttributeTypeInfoDTO road_name
minOccurs=0 maxOccurs=1 nillable=true type=string isComplex=false] with type
null and meta {}
20 Mar 17:52:15 DEBUG [geoserver.requests] - checking to see if [roads_geom]
contains[AttributeTypeInfo backed by [AttributeTypeInfoDTO roads_geom
minOccurs=0 maxOccurs=1 nillable=true type=lineStringProperty
isComplex=false] with type null and meta {}
20 Mar 17:52:15 WARN [geoserver.ows] -
java.lang.IllegalArgumentException: Binary geometry filter, but first
expression is not a property name? (it's a class
org.geotools.filter.function.FilterFunction_geometryType)
        at
org.geoserver.feature.ReprojectingFilterVisitor$BinaryComparisonTransformer.transform(ReprojectingFilterVisitor.java:359)
        at
org.geoserver.feature.ReprojectingFilterVisitor.visit(ReprojectingFilterVisitor.java:109)
        at
org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:149)
        at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:147)

aaime wrote:

Jonathan Lister ha scritto:

Maybe one more clue .. I rectreated entries in the test table with an
explicit SRID, now when making a WFS 1.1.0 request I get a slightly more
meaningful error:

I've tried out the same statemetns you suggested, without setting
the SRS in my geometries (so not the latest version) and WFS GetFeature
seems to work just fine?

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16185142.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Just for fun I also tried running GeoServer under Tomcat (5.5) instead of
GlassFish - and got exactly the same results.

Jonathan Lister wrote:

I have now moved from Oracle to postGIS (postGIS 1.3.2 on posgtres 8.1);
however I'm still getting the same problems. Must be doing something
really stupid somewhere, but I can't see what - any suggestions really
appreciated!

--
View this message in context: http://www.nabble.com/Newbie---1.6.1-WFS-version-question-tp16004690p16185820.html
Sent from the GeoServer - User mailing list archive at Nabble.com.