Revision 3516 trunk/libraries/libRemoteServices/src/org/gvsig/remoteClient/wms/wms_1_1_1/WMSProtocolHandler1_1_1.java
WMSProtocolHandler1_1_1.java | ||
---|---|---|
1 | 1 |
|
2 | 2 |
package org.gvsig.remoteClient.wms.wms_1_1_1; |
3 | 3 |
|
4 |
import java.io.ByteArrayInputStream; |
|
4 | 5 |
import java.io.File; |
5 | 6 |
import java.io.FileNotFoundException; |
6 | 7 |
import java.io.FileReader; |
7 | 8 |
import java.io.IOException; |
9 |
import java.io.InputStreamReader; |
|
10 |
import java.io.Reader; |
|
11 |
import java.util.ArrayList; |
|
8 | 12 |
import java.util.TreeMap; |
9 | 13 |
import java.util.Vector; |
10 | 14 |
|
11 | 15 |
import org.gvsig.remoteClient.utils.CapabilitiesTags; |
12 |
import org.kxml2.io.KXmlParser; |
|
16 |
import org.gvsig.remoteClient.utils.ExceptionTags; |
|
17 |
import org.kxml2.io.KXmlParser; |
|
13 | 18 |
import org.xmlpull.v1.XmlPullParserException; |
14 | 19 |
|
15 | 20 |
/** |
... | ... | |
84 | 89 |
// } |
85 | 90 |
//kxmlParser.require(KXmlParser.END_TAG, null, CapabilitiesTags.CAPABILITIES_ROOT); |
86 | 91 |
//kxmlParser.next(); |
87 |
kxmlParser.require(KXmlParser.END_DOCUMENT, null, null);
|
|
92 |
kxmlParser.require(KXmlParser.END_DOCUMENT, null, null); |
|
88 | 93 |
} |
89 | 94 |
} |
90 | 95 |
catch(XmlPullParserException parser_ex){ |
... | ... | |
192 | 197 |
} |
193 | 198 |
else if ((parser.getName().compareTo(CapabilitiesTags.VENDORSPECIFICCAPABILITIES)==0) || |
194 | 199 |
(parser.getName().compareTo(CapabilitiesTags.USERDEFINEDSYMBOLIZATION )==0)) |
200 |
|
|
195 | 201 |
{ |
196 | 202 |
parser.skipSubTree(); |
197 | 203 |
} |
... | ... | |
255 | 261 |
// TODO: does not get such a tag when arrives here!!!!!! |
256 | 262 |
//parser.require(KXmlParser.END_TAG, null, CapabilitiesTags.REQUEST); |
257 | 263 |
} |
264 |
|
|
265 |
/* (non-Javadoc) |
|
266 |
* @see org.gvsig.remoteClient.wms.WMSProtocolHandler#parseException(byte[]) |
|
267 |
*/ |
|
268 |
protected String parseException(byte[] data) { |
|
269 |
ArrayList errors = new ArrayList(); |
|
270 |
KXmlParser kxmlParser = new KXmlParser(); |
|
271 |
Reader reader = new InputStreamReader(new ByteArrayInputStream(data)); |
|
272 |
try |
|
273 |
{ |
|
274 |
kxmlParser.setInput(reader); |
|
275 |
kxmlParser.nextTag(); |
|
276 |
int tag; |
|
277 |
if ( kxmlParser.getEventType() != KXmlParser.END_DOCUMENT ) |
|
278 |
{ |
|
279 |
kxmlParser.require(KXmlParser.START_TAG, null, ExceptionTags.EXCEPTION_ROOT); |
|
280 |
tag = kxmlParser.nextTag(); |
|
281 |
while(tag != KXmlParser.END_DOCUMENT) |
|
282 |
{ |
|
283 |
switch(tag) |
|
284 |
{ |
|
285 |
case KXmlParser.START_TAG: |
|
286 |
if (kxmlParser.getName().compareTo(ExceptionTags.SERVICE_EXCEPTION)==0){ |
|
287 |
String errorCode = kxmlParser.getAttributeValue("", ExceptionTags.CODE); |
|
288 |
errorCode = (errorCode != null) ? "["+errorCode+"] " : ""; |
|
289 |
String errorMessage = kxmlParser.nextText(); |
|
290 |
errors.add(errorCode+errorMessage); |
|
291 |
} |
|
292 |
break; |
|
293 |
case KXmlParser.END_TAG: |
|
294 |
break; |
|
295 |
|
|
296 |
} |
|
297 |
tag = kxmlParser.nextTag(); |
|
298 |
} |
|
299 |
kxmlParser.require(KXmlParser.END_DOCUMENT, null, null); |
|
300 |
} |
|
301 |
} |
|
302 |
catch(XmlPullParserException parser_ex){ |
|
303 |
System.out.println(parser_ex.getMessage()); |
|
304 |
parser_ex.printStackTrace(); |
|
305 |
} |
|
306 |
catch (IOException ioe) { |
|
307 |
ioe.printStackTrace(); |
|
308 |
} |
|
309 |
String message = errors.size()>0? "" : null; |
|
310 |
for (int i = 0; i < errors.size(); i++) { |
|
311 |
message += (String) errors.get(i)+"\n"; |
|
312 |
} |
|
313 |
return message; |
|
314 |
} |
|
258 | 315 |
|
259 | 316 |
} |
Also available in: Unified diff