Details
-
Type:
Bug
-
Status:
Reopened
-
Priority:
Critical
-
Resolution: Unresolved
-
Affects Version/s: UDIG 1.2.RC3
-
Fix Version/s: UDIG 1.2.0
-
Component/s: webservices
-
Labels:None
-
Environment:Windows 7, GWC- Geowebcache NIGHTLY, built 2010-03-03 (included in Geoserver 2.0.2), uDIG Version: 1.2-SNAPSHOT
Description
When I insert a url like "http://linux:8080/geoserver/gwc/service/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=getcapabilities&TILED=true" uDIG is not able to open it. It throws an exception in the log.
!ENTRY net.refractions.udig.catalog.internal.wms 4 0 2010-07-27 07:07:11.027
!MESSAGE WMSC GetCapabilities: http://linux:8080/geoserver/gwc/service/wms?REQUEST=GetCapabilities&SERVICE=WMS
!ENTRY net.refractions.udig.catalog.internal.wms 4 0 2010-07-27 07:07:11.105
!MESSAGE Cannot convert string to url:
!STACK 0
java.net.MalformedURLException: no protocol:
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at net.refractions.udig.catalog.wmsc.server.WMSCComplexTypes$_ServiceType.getValue(WMSCComplexTypes.java:739)
at org.geotools.xml.handlers.ComplexElementHandler.endElement(ComplexElementHandler.java:186)
at org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:266)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLNSDTDValidator.endNamespaceScope(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.geotools.xml.DocumentFactory.getInstance(DocumentFactory.java:140)
at net.refractions.udig.catalog.wmsc.server.WMSCCapabilitiesResponse.<init>(WMSCCapabilitiesResponse.java:70)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer$CapabilitiesRequest.createResponse(TiledWebMapServer.java:247)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.issueRequest(TiledWebMapServer.java:315)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.readCapabilities(TiledWebMapServer.java:174)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.getCapabilities(TiledWebMapServer.java:139)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.getCapabilitiesXml(TiledWebMapServer.java:216)
at net.refractions.udig.catalog.internal.wmsc.WMSCServiceImpl.getWMSC(WMSCServiceImpl.java:204)
-
- capabilities.esrimap
- 10/Aug/10 12:55 AM
- 4 kB
- Georg Weickelt
-
- capabilities.xml
- 28/Jul/10 8:25 AM
- 5 kB
- Georg Weickelt
-
- tiledVendorSpecificNested.sld
- 16/Aug/10 6:37 AM
- 59 kB
- Mat Balmer
-
- udig1705.log
- 01/Aug/10 7:07 AM
- 7 kB
- Jody Garnett
-
- wmscCapabilities.xml
- 07/Aug/10 12:59 AM
- 270 kB
- Jody Garnett
-
- wmscCapabilities2.xml
- 07/Aug/10 5:18 AM
- 10 kB
- Jody Garnett
-
- wmscCapabilities3.xml
- 07/Aug/10 5:35 AM
- 10 kB
- Arne Kepp
Issue Links
- depends upon
-
GEOS-4076
GWC configuration does not produce WMSC Capabilities with VendorSpecificCapabilities
-
Activity
<WMT_MS_Capabilities>
...
<VendorSpecificCapabilities>
<TileSet>
<SRS>EPSG:4326</SRS>
<BoundingBox srs="EPSG:4326" minx="-180" miny="-90" maxx="180" maxy="90" />
<Resolutions>0.703125 0.3515625 0.17578125 0.087890625 0.04394531250</Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/png</Format>
<Layers>coastline</Layers>
<Styles></Styles>
</TileSet>
<TileSet>
<SRS>OSGEO:41001</SRS>
<BoundingBox srs="OSGEO:41001" minx="-20037508.34" miny="-20037508.34"
maxx="20037508.34" maxy="20037508.34" />
<Resolutions>
156543.03 78271.52 39135.76 19567.88 9783.94 4891.97
</Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/png</Format>
<Layers>coastline</Layers>
<Styles></Styles>
</TileSet>
</VendorSpecificCapabilities>
...
</WMT_MS_Capabilities>
The issue is: http://jira.codehaus.org/browse/GEOS-4076
I did check against TileCache and the problems does not appear there.
WmsPlugin.log("WMS Capabilies document does contain VendorSpecificCapabilities describing WMS-C tileset",null);
- out of the box geowebcache WMS-C Capabilities is not configured to produce the VendorCapabilities defining the tileset (the subject of
- the demo server produces a VendorCapabiliies which fails to parse.
I have re-opened this bug in order to look into what the demo server is doing.
Note the TileCache capabilities document still parses just fine.
- http://tiledmarble.org/geowebcache/service/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=getcapabilities&TILED=true
The attached wmscCapabilities2.xml is from this service
Fix as of -r31928
This is the log for http://linux:8080/geoserver/gwc/service/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=getcapabilities&TILED=true
!SESSION 2010-08-09 13:19:15.142 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_17
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de
Command-line arguments: -os win32 -ws win32 -arch x86
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.576
!MESSAGE NLS missing message: cancel_description in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.578
!MESSAGE NLS missing message: cancel_tooltip in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.579
!MESSAGE NLS missing message: orientation_horizontal_description in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.580
!MESSAGE NLS missing message: orientation_horizontal_tooltip in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.582
!MESSAGE NLS missing message: orientation_vertical_description in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.583
!MESSAGE NLS missing message: orientation_vertical_tooltip in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.585
!MESSAGE NLS missing message: orientation_single_description in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.586
!MESSAGE NLS missing message: orientation_single_tooltip in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.587
!MESSAGE NLS missing message: orientation_automatic_description in: net.refractions.udig.ui.internal.messages
!ENTRY org.eclipse.osgi 2 1 2010-08-09 13:19:21.589
!MESSAGE NLS missing message: orientation_automatic_tooltip in: net.refractions.udig.ui.internal.messages
!ENTRY net.refractions.udig.ui 1 0 2010-08-09 13:19:21.591
!MESSAGE net.refractions.udig.ui.WorkbenchConfiguration "net.refractions.udig.internal.ui.UDIGWorkbenchConfiguration" angegeben, aber keine gültige Erweiterung gefunden.
Bitte prüfen Sie, daß die Erweiterung exisitert und gültig ist.
!ENTRY net.refractions.udig.ui 1 0 2010-08-09 13:19:21.639
!MESSAGE net.refractions.udig.ui.MenuBuilder "net.refractions.udig.ui.uDigMenuBuilder" angegeben, aber keine gültige Erweiterung gefunden.
Bitte prüfen Sie, daß die Erweiterung exisitert und gültig ist.
!ENTRY net.refractions.udig.ui 1 0 2010-08-09 13:19:21.890
!MESSAGE EnablementUtil: Expected child of net.refractions.udig.render.wms.basic.operation but didn't find one...
!ENTRY org.eclipse.ui 4 4 2010-08-09 13:19:22.216
!MESSAGE Die Komponente ist im Seitenlayout bereits vorhanden: net.refractions.udig.catalog.ui.CatalogView.
!ENTRY org.eclipse.ui 4 4 2010-08-09 13:19:22.221
!MESSAGE Unable to find Action Set: net.refractions.udig.tools.edit.mapGraphic.action
!ENTRY net.refractions.udig.catalog.internal.wms 4 0 2010-08-09 13:19:48.987
!MESSAGE WMSC GetCapabilities: http://linux:8080/geoserver/gwc/service/wms?REQUEST=GetCapabilities&SERVICE=WMS
!ENTRY net.refractions.udig.catalog.internal.wms 4 0 2010-08-09 13:19:49.884
!MESSAGE Cannot convert string to url:
!STACK 0
java.net.MalformedURLException: no protocol:
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at net.refractions.udig.catalog.wmsc.server.WMSCComplexTypes$_ServiceType.getValue(WMSCComplexTypes.java:739)
at org.geotools.xml.handlers.ComplexElementHandler.endElement(ComplexElementHandler.java:186)
at org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:266)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLNSDTDValidator.endNamespaceScope(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.geotools.xml.DocumentFactory.getInstance(DocumentFactory.java:140)
at net.refractions.udig.catalog.wmsc.server.WMSCCapabilitiesResponse.<init>(WMSCCapabilitiesResponse.java:70)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer$CapabilitiesRequest.createResponse(TiledWebMapServer.java:247)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.issueRequest(TiledWebMapServer.java:315)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.readCapabilities(TiledWebMapServer.java:174)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.getCapabilities(TiledWebMapServer.java:139)
at net.refractions.udig.catalog.wmsc.server.TiledWebMapServer.getCapabilitiesXml(TiledWebMapServer.java:216)
at net.refractions.udig.catalog.internal.wmsc.WMSCServiceImpl.getWMSC(WMSCServiceImpl.java:204)
at net.refractions.udig.catalog.internal.wmsc.WMSCServiceImpl.members(WMSCServiceImpl.java:106)
at net.refractions.udig.catalog.internal.wmsc.WMSCServiceImpl.resources(WMSCServiceImpl.java:138)
at net.refractions.udig.catalog.ui.workflow.ResourceSelectionState.init(ResourceSelectionState.java:91)
at net.refractions.udig.catalog.ui.workflow.Workflow.doNextInternal(Workflow.java:352)
at net.refractions.udig.catalog.ui.workflow.Workflow.access$4(Workflow.java:300)
at net.refractions.udig.catalog.ui.workflow.Workflow$2.run(Workflow.java:274)
at net.refractions.udig.catalog.ui.workflow.DefaultThreading$2.run(DefaultThreading.java:70)
at net.refractions.udig.catalog.ui.workflow.DefaultThreading$WorkflowThread.run(DefaultThreading.java:112)
Arne Kepp has been kind enough to stand up a GeoWebCache for me to test against that is configured correct.
Can I ask you to attach your log files (rather then just enter them as comments - just so we can keep track of the conversation. I also need you to attach the capabilities document - since I cannot login to your server remotely).
On the bright side I set up a test case in uDig - so I can check your capabilities document quickly and let you know if there is a problem (or if there is a problem with the uDig code fix it promptly).
Yesterday, it was GeoWebcache NIGHTLY 2010-07-17.
Today with GeoWebCache version NIGHTLY, built 2010-08-10.
Found out the following behaviour of Geo Server:
http://localhost:8080/geoserver/gwc/service/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=getcapabilities&TILED=true
gives a capabillities document without the vendor specific stuff, whereas
http://localhost:8080/geoserver/gwc/service/wms?request=getcapabilities&tiled=true
generates them, although nested inside the Capabilities element.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/capabilities_1_1_1.dtd">
<WMT_MS_Capabilities version="1.1.1">
<Service>
<Name>OGC:WMS</Name>
<Title>GeoWebCache</Title>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://nrhn506d.nrhi.ch:8080/geoserver/gwc/service/wms?SERVICE=WMS&"/>
</Service>
<Capability>
...
<VendorSpecificCapabilities>
<TileSet>
<SRS>EPSG:900913</SRS>
<BoundingBox srs="EPSG:900913" minx="663130.207" miny="5752509.308" maxx="1308387.309" maxy="6397766.41" />
<Resolutions>1260.2677773437497 630.1338886718748 315.0669443359374 157.5334721679687 78.76673608398436 39.38336804199218 19.69168402099609 9.845842010498044 4.922921005249022 2.461460502624511 1.2307302513122556 0.6153651256561278 0.3076825628280639 0.15384128141403194 0.07692064070701597 0.038460320353507986 0.019230160176753993 0.009615080088376997 0.004807540044188498 0.002403770022094249 0.0012018850110471246 6.009425055235623E-4 3.0047125276178114E-4 1.5023562638089057E-4 7.511781319044529E-5 </Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/png</Format>
<Layers>picc</Layers>
<Styles></Styles>
</TileSet>
<TileSet>
<SRS>EPSG:900913</SRS>
<BoundingBox srs="EPSG:900913" minx="663130.207" miny="5752509.308" maxx="1308387.309" maxy="6397766.41" />
<Resolutions>1260.2677773437497 630.1338886718748 315.0669443359374 157.5334721679687 78.76673608398436 39.38336804199218 19.69168402099609 9.845842010498044 4.922921005249022 2.461460502624511 1.2307302513122556 0.6153651256561278 0.3076825628280639 0.15384128141403194 0.07692064070701597 0.038460320353507986 0.019230160176753993 0.009615080088376997 0.004807540044188498 0.002403770022094249 0.0012018850110471246 6.009425055235623E-4 3.0047125276178114E-4 1.5023562638089057E-4 7.511781319044529E-5 </Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/gif</Format>
<Layers>picc</Layers>
<Styles></Styles>
</TileSet>
...
</VendorSpecificCapabilities>
<Layer>
<Title>GeoWebCache WMS</Title>
<Abstract>Note that not all GeoWebCache instances provide a full WMS service.</Abstract>
<LatLonBoundingBox minx="-180.0" miny="-90.0" maxx="180.0" maxy="90.0"/>
<Layer queryable="1">
<Name>picc</Name>
<Title>picc</Title>
<SRS>EPSG:900913</SRS>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="5.625" miny="45.0" maxx="11.25" maxy="50.625"/>
<BoundingBox SRS="EPSG:900913" minx="663130.207" miny="5752509.308" maxx="1308387.309" maxy="6397766.41"/>
<BoundingBox SRS="EPSG:4326" minx="5.625" miny="45.0" maxx="11.25" maxy="50.625"/>
</Layer>
..
</Layer>
</Capability>
</WMT_MS_Capabilities>
Hope this helps to solve this issue.
Cheers
Mat
With Version 1.2.0 it works as expected.
Thanks for your effords.
Note that uDig fills in the required parameters if any our missing.
Jody
tiledVendorSpecificNested.xml
- appears to work
- file is parsed
- has non empty tiles
- console had:
OnlineResource cannot be empty
Cannot decode tile epsg code: EPSG:900913
...
- not sure about OnlineResource being empty
- EPSG:900913 should not occur when run from uDig as we have an extra epsg.properties to define these extra non standard codes
esrimapCapabilities.xml
- does not work
- parses
- does not result in any tiles
- console has the same two warnings:
OnlineResource cannot be empty
Cannot decode tile epsg code: EPSG:900913
So I think the OnlineResource definition is actually causing a trouble ...
// OnlineResource
if (sameName(elems[2], value[i])) {
String spec = (String) value[i].getValue();
if( spec == null || spec.length() == 0){
// Service not avaialble
System.out.println("OnlineResource cannot be empty");
}
else {
try {
service.setOnlineResource(new URL( spec ));
} catch (MalformedURLException e) {
System.out.println("OnlineResource cannot string to url: " +spec); //$NON-NLS-1$
}
}
}
Looks I expect it does not like the xlink? Still the same warning is produced from the demo geowebcache which works...
Looked at in in a debugger; the code doing the parsing is org.geotools.xml.xsi.XSISimpleTypes - which is there to parse simple strings rather than xlink. This may be worth a separate bug report.
<OnlineResource>http://nrhn506d.nrhi.ch:8080/geoserver/gwc/service/wms?SERVICE=WMS&</OnlineResource>
This way it is able to parse the document. But somehow this should be fixed that the implementation also takes the href attribute into account (and not only the content of the element).
Furthermore I observed something interesting about the epsg.properties file:
If uDig is located in a path containing a whitespace (e.g. c:/program files/uDig) I get an "invalid character" warning upon startup and the additional codes are not loaded at all. When uDig is located on a path without whitespaces, the codes are loaded without any problems. I guess this needs some URL encoding there.
I am not sure if this version of the parser can handle attributes; we will need to check.
We have had trouble reports in the past because are using the WMS-C protocol and you need to configure geowebcache correctly
for that to work out and produce a valid capabilities document for us to parse.
A couple additional steps:
- can you attach the capabilities document produced?
- can you raise the issue with geowebcache bug tracker as well (although it looks like you are using it as part of geoserver?)