Revision 3516 trunk/libraries/libRemoteServices/src/org/gvsig/remoteClient/wms/wms_1_1_1/WMSProtocolHandler1_1_1.java

View differences:

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