Opened 21 years ago

Last modified 20 years ago

#466 new defect

handle XML OGC service exceptions

Reported by: pspencer@… Owned by: mapserverbugs
Priority: high Milestone: FUTURE
Component: WFS Client Version: 4.1
Severity: normal Keywords:
Cc: wbronsema@…

Description

The discussion so far:

The desired functionality is to have the various OGC clients to detect a
ServiceException and push the information onto the error stack for presentation
to the user, then disable the layer and allow the remaining layers to render
normally.

Daniel's comments:

Agreed.  We just need to detect XML exceptions (check the MIME type of the
response via libcurl) and pass them through the error stack. This should have
been done for both WMS and WFS XMl exceptions long time ago...  This was one of
the issues that couldn't be dealt with with libwww and led to the switch to
libcurl in 4.0, but when I implemented the switch to libcurl I forgot to fix the
XML exception handling.

Tom Kralidis' comments:

WMS allows for the following exceptions:

application/vnd.ogc.se_inimage (error text embedding in image)
application/vnd.ogc.se_blank (blank image)
application/vnd.ogc.se_xml (xml response)

This is correct.  You cannot request inimage with WFS.

...

For handling exceptions, you can let the client choose what type of errors
they wish

LAYER
 TYPE "wms_connection"
 NAME "roads"
 ...
 ERRORS "inimage"
 #ERRORS "blank" # or this
 #ERRORS "se_xml" # or this
 ...
END

What MapServer can then do, as a client is process accordingly.  If xml is
chosen, the error can be fed to an error object, or CGI directive for the
client to check out if they choose to.

This is an another good reason to have more detailed error reporting in
MapServer (I've put a Bugzilla request for this). [note: what bug was this?]

Steve Lime's comments:

Has anyone mapped OGC filters to MapServer queries explicitly? If so I'd
love to see the list and know where the gaps are. Many may already be doable
or easily added.

...

Are you going to add a generic msReturnOGCError function to maperror.c?
That way all the OGC services can use it.

and Daniel's final comment:

Well, we could do that if there is really a use for such a function (I thought
that returning the exception via the error stack would be enough).  The main
part of the work is to detect exception in what is returned by remote servers
and this would likely end up in mapows.c to be shared by all OGC web services. 
From there we could add msReturnOGCError(), but what would this function do and
where/when would it be used?

Change History (4)

comment:1 by pspencer@…, 21 years ago

Cc: bronsema@… added

comment:2 by dmorissette, 21 years ago

blocked: 467

comment:3 by dmorissette, 20 years ago

Milestone: 4.4 release

comment:4 by dmorissette, 20 years ago

Milestone: 4.4 releaseFUTURE
Can't make it in 4.4 ... setting FUTURE target milestone.
Note: See TracTickets for help on using tickets.