WFS and uDIG IllegalArgumentException
Paul Ramsey
pramsey at REFRACTIONS.NET
Tue Aug 8 16:39:47 PDT 2006
We've been doing WFS cleanups for the last while, and have fixed a large
number of issues, and also found others:
- Our WFS support is much stronger in the ongoing 1.1RC series than in 1.0
- The Mapserver WFS support does some illegal things in versions prior
to 4.8, which makes support spotty for ealier versions (some feature
types work, others don't, some things work depending on the kind of
backend you have, others don't, etc).
The sad truth about WFS so far is that it seems to be quite hard for WFS
servers to obey the schema/instance contract... they advertise different
things in the DescribeFeatureType schema than they actually provide in
the GetFeature instance. We have been turning these kinds of things up
in commercial WFS servers too -- a complex specification takes no prisoners.
P.
Ryan Ollerenshaw wrote:
> When trying to add a Web Feature Server to uDIG i am getting a
> IllegalArgumentException.
>
> when i post the same URL into the web browser the XML document that is
> returned looks just fine, no warnings.
> any ideas on what the problem could be, i havent seen anything posted
> anywhere saying that uDIG has any problems with WFS. I can dispaly the
> same features just fine in uDIG using a WMS
>
> the URL
> http://neuron/cgi-bin/mapserv?map=../html/mapserver/htdocs/wfs_service.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=hrsc_nd&
>
>
> The error:
> java.lang.IllegalArgumentException:
> at org.eclipse.core.internal.runtime.Assert.isLegal(Assert.java:58)
> at org.eclipse.core.internal.runtime.Assert.isLegal(Assert.java:42)
> at org.eclipse.core.runtime.Status.setMessage(Status.java:174)
> at org.eclipse.core.runtime.Status.<init>(Status.java:81)
> at
> net.refractions.udig.catalog.internal.wfs.WfsPlugin.log(WfsPlugin.java:110)
> at
> net.refractions.udig.catalog.internal.wfs.UDIGWFSDataStoreFactory.createNewDataStore(UDIGWFSDataStoreFactory.java:96)
>
> at
> org.geotools.data.wfs.WFSDataStoreFactory.createDataStore(WFSDataStoreFactory.java:108)
>
> at
> net.refractions.udig.catalog.internal.wfs.WFSServiceImpl.getDS(WFSServiceImpl.java:143)
>
> at
> net.refractions.udig.catalog.internal.wfs.WFSServiceImpl.members(WFSServiceImpl.java:95)
>
> at
> net.refractions.udig.catalog.internal.ui.ConnectionPage$1.run(ConnectionPage.java:133)
>
> at
> org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:346)
>
> at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:291)
> at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:830)
> at
> net.refractions.udig.catalog.internal.ui.ConnectionPage.getNextPage(ConnectionPage.java:147)
>
> at
> org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:747)
> at
> org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:345)
> at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:556)
> at
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3125)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2758)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
> at
> net.refractions.udig.internal.ui.UDIGApplication.run(UDIGApplication.java:28)
>
> at
> org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
> at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
> at org.eclipse.core.launcher.Main.run(Main.java:973)
> at org.eclipse.core.launcher.Main.main(Main.java:948)
>
> The MapFile:
> MAP
> IMAGETYPE PNG
> EXTENT -180 -90 180 90
> #EXTENT -350878.81 -9890271.86 350878.81 9890271.86
> SIZE 600 500
> SHAPEPATH "../my_data/"
>
> IMAGECOLOR 255 255 255
>
> WEB
> IMAGEPATH "/tmp/ms_tmp/"
> IMAGEURL "/ms_tmp/"
> METADATA
> wfs_title "WFS test"
> wfs_name "WFS test"
> wfs_srs "EPSG:4326"
> wfs_onlineresourc
> "http://localhost/cgi-bin/mapserv?map=../html/mapserver/htdocs/wfs_service.map&"
>
> END
> END
>
> PROJECTION
> "init=epsg:4326"
> END
>
> LAYER
> NAME "hrsc_nd"
> #STATUS DEFAULT
> STATUS off
> TYPE POLYGON
> PROJECTION
> "init=epsg:4326"
> END
> DUMP TRUE
> CONNECTIONTYPE POSTGIS
> CONNECTION "host=localhost dbname=mars_db user=postgres"
> DATA "the_geom FROM hrsc0001_footprints_sep05_nd"
> METADATA
> wfs_title "hrsc_nd"
> wfs_srs "EPSG:4326"
> wfs_onlineresourc
> "http://localhost/cgi-bin/mapserv?map=../html/mapserver/htdocs/wfs_service.map&"
>
> gml_include_items "all" ## Optional (serves all attributes for
> layer) END
> CLASS
> NAME "hrsc_nd"
> STYLE
> COLOR 200 255 0
> OUTLINECOLOR 120 120 120
> END
> END
> END # layer
>
>
>
>
>
> END # of map file
More information about the MapServer-users
mailing list