Hi,
tried implement the OWS 2.0 policy of returning proper HTTP status
codes when a service exception is returned.
The patch attached to http://jira.codehaus.org/browse/GEOS-4255
has the basics of it:
- a new class to represent the ows error code and its correspondent
status code
- changed service exception
- changed the wps module to use the new code class as an example
- made the service exception handlers set the status code
(start the JVM with -DOWS10_HTTP_ERROR_CODES=true to have
the codes set on WMS/WFS)
Now, what's wrong with it? Well, it basically makes debugging from
a browser impossible.
When a 500 or a 400 is set as the status code without also setting
the content type to html the browser just says that the web page is
not there, and does not offer to download the service exception
at all!
This basically means you have to use a non browser client,
such as "curl", to actually get the error message. Which is ridicolous.
In order to get anything to display HTTPServletResponse.sendError(code, message)
can be used, but at that point the container sets the content type to
html and builds a little web page around the message, disallowing
to use any other content type or... content.
I hope there is some workaround, otherwise this seemingly good
idea is going to turn into a tragedy (and one we won't be able
to avoid since OWS 2.0 will be the base for future specs...)
Suggestions, fixes to my eventually broken understanding,
moral support... all greatly appreciated...
Cheers
Andrea
--
-----------------------------------------------------
Ing. Andrea Aime
Senior Software Engineer
GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584962313
fax: +39 0584962313
http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf
-----------------------------------------------------