WFS virtual services

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

WFS virtual services

Olyster
This post was updated on .
Hi,

I'm having a problem using WFS with a virtual service.

After debugging, I found out that the prefix is emptied during the
GetFeature request.

In WorkspaceQualifier.java/qualifyRequest, there's this line :

typeName = new QName(ns.getURI(), typeName.getLocalPart());

As you can see the third parameter (the prefix) is omitted so the resulting
QName doesn't have a prefix (it's equal to an empty string).

If I replace the calling line with :

typeName = new QName(ns.getURI(), typeName.getLocalPart(),
typeName.getPrefix());

The prefix is kept an the problem is gone.

My question is : Why is the prefix not passed to the QName constructor ?

Thanks




--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: WFS virtual services

geowolf
Hi Olyster,
see comments inline.

On Tue, May 14, 2019 at 10:23 PM Olyster <[hidden email]> wrote:
Hi,

I'm having a problem using WFS with a virtual service.

After debugging, I found out that the prefix is emptied during the
GetFeature request.

In WorkspaceQualifier.java, there's this line :

typeName = new QName(ns.getURI(), typeName.getLocalPart());

You mean WFSWorkspaceQualifier?
 
As you can see the third parameter (the prefix) is omitted so the resulting
QName doesn't have a prefix (it's equal to an empty string).

If I replace the calling line with :

typeName = new QName(ns.getURI(), typeName.getLocalPart(),
typeName.getPrefix());

The prefix is kept an the problem is gone.

My question is : Why is the prefix not passed to the QName constructor ?

Prefixes in XML mean nothing, the namespace it the element that is stable, a prefix can change from request to request.
For example, if a xml request uses xmlns:mickeyMouse="http://www.opengis.net/wfs" and then prefixes every wfs element
with mickeyMouse, e.g. mickeyMouse:GetFeature, then the request is valid.
So the norm would be to use the namespace everywhere instead. In GeoServer things are a bit more complicated
in that for layers the workspace name is often used as the prefix.

Ideally, the code using the QName and assuming the prefix has meaning seems like the one that needs fixing instead of the 
one not setting it, but I did not check it overall, so it might be more practical to do otherwise.

Cheers
Andrea

==

GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.



_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: WFS virtual services

Olyster
Andrea,

thanks for your answer.

You're right, I meant WFSWorkspaceQualifier/qualifyRequest.

I'm working with Hexagon SDI and, only with WFS, as soon as I specify a
workspace or a workspace/layer as a virtual service, Geoserver returns :

<ows:Exception exceptionCode="InvalidParameterValue" locator="namespace">
<ows:ExceptionText>Unknown namespace []</ows:ExceptionText>
</ows:Exception>

Here's an example that's failing :

/geoserver/workspace/layer/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.1.0&MAXFEATURES=5000&RESULTTYPE=results&SRSNAME=urn:x-ogc:def:crs:EPSG:3857&TYPENAME=p1:layer&FILTER=<Filter+xmlns=&quot;http://www.opengis.net/ogc&quot;><BBOX><PropertyName+xmlns:ogc=&quot;http://www.opengis.net/ogc&quot;+xmlns=&quot;http://www.opengis.net/ogc&quot;>SHAPE</PropertyName><Envelope+srsName=&quot;urn:x-ogc:def:crs:EPSG:3857&quot;+xmlns=&quot;http://www.opengis.net/gml&quot;><lowerCorner>-7974975.62645113+5951804.48757899</lowerCorner><upperCorner>-7971215.88012235+5953713.02462899</upperCorner></Envelope></BBOX></Filter>&NAMESPACE=xmlns(p1=http://server:8080/geoserver/workspace)

An other option would be to modify
BaseFeatureKvpRequestReEader/checkTypeName but at this point, the prefix is
already lost because WFSWorkspaceQualifier/qualifyRequest removed it from
the QName.

I could replace in checkTypeName:

String prefix = qName.getPrefix();

With :

String prefix = qName.getPrefix();
if (prefix == "")
    prefix = "p1";

This also makes the query work but I think it's less elegant cause the
prefix is hard coded (got it from the previous query).

Since the prefix is known at the beginning of
WFSWorkspaceQualifier/qualifyRequest, I would perform the former
modification. If the prefix == "" then the current behavior will be kept.

Do you consider it a bug ? Should I make the modification as a quick fix to
be released or I should use and maintain my own version of gs-wfs.jar ?

Thanks



--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: WFS virtual services

Olyster
In reply to this post by geowolf
Hi,

maybe you didn't get the time to read my reply. I don't want to bug you with
that issue but I just want to make sure if you consider it to be a bug.

If yes, should I make the modification as a quick fix to be released or
create an issue in bug tracker or I should maintain my own version of
gs-wfs.jar ?

Thanks



--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: WFS virtual services

geowolf
Hi Olyster,
I saw it, but could not put toghether an answer in just a minute so kept on delaying the answer.
Sorry, I'm overwhelmed with work beyond repair, only the mails that I can answer super-quickly get answered.

Anyways, I can go for a short and direct response, since I still don't have time for a longer answer. 
1) The fix you suggested in the first mail seems to be the best one (3 argument constructor)
2) No it won't get fixed quickly unless someone makes a pull request following all the rules (CLA, tests and the like, see https://github.com/geoserver/geoserver/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
3) It's still a good idea to open a ticket in Jira with all the details.

Cheers
Andrea

On Wed, May 22, 2019 at 3:06 PM Olyster <[hidden email]> wrote:
Hi,

maybe you didn't get the time to read my reply. I don't want to bug you with
that issue but I just want to make sure if you consider it to be a bug.

If yes, should I make the modification as a quick fix to be released or
create an issue in bug tracker or I should maintain my own version of
gs-wfs.jar ?

Thanks



--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users


--

Regards, Andrea Aime == GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.



_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users