comparison gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java @ 1005:397b4cb8589b

Prevent NPE if the Mapviewer has delivered no Geometry. gnv/trunk@1215 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 15 Jun 2010 07:49:06 +0000
parents 21ad44ccdb84
children 28a0628b11b0
comparison
equal deleted inserted replaced
1004:a0d16ccb82ba 1005:397b4cb8589b
1 package de.intevation.gnv.artifactdatabase.client; 1 package de.intevation.gnv.artifactdatabase.client;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.io.InputStreamReader;
6 import java.io.OutputStream;
7 import java.io.OutputStreamWriter;
8 import java.util.ArrayList;
9 import java.util.Collection;
10 import java.util.HashMap;
11 import java.util.Iterator;
12 import java.util.List;
13 import java.util.Locale;
14 import java.util.Map;
15
16 import org.apache.log4j.Logger;
17 import org.restlet.Client;
18 import org.restlet.data.ClientInfo;
19 import org.restlet.data.Language;
20 import org.restlet.data.Method;
21 import org.restlet.data.Preference;
22 import org.restlet.data.Protocol;
23 import org.restlet.data.Request;
24 import org.restlet.data.Response;
25 import org.restlet.representation.Representation;
26 import org.restlet.representation.StringRepresentation;
27 import org.w3c.dom.Document;
28 import org.w3c.dom.Element;
29 import org.w3c.dom.Node;
30 import org.w3c.dom.NodeList;
2 31
3 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException; 32 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException;
4 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseInputException; 33 import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseInputException;
5
6 import de.intevation.gnv.artifactdatabase.objects.Artifact; 34 import de.intevation.gnv.artifactdatabase.objects.Artifact;
7 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; 35 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription;
8 import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory; 36 import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory;
9 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; 37 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
10 import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticsSet; 38 import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticsSet;
17 import de.intevation.gnv.artifactdatabase.objects.InputParameter; 45 import de.intevation.gnv.artifactdatabase.objects.InputParameter;
18 import de.intevation.gnv.artifactdatabase.objects.OutputMode; 46 import de.intevation.gnv.artifactdatabase.objects.OutputMode;
19 import de.intevation.gnv.artifactdatabase.objects.OutputParameter; 47 import de.intevation.gnv.artifactdatabase.objects.OutputParameter;
20 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactFactory; 48 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactFactory;
21 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactObject; 49 import de.intevation.gnv.artifactdatabase.objects.ParametrizedArtifactObject;
22
23 import de.intevation.gnv.artifactdatabase.objects.map.Layer; 50 import de.intevation.gnv.artifactdatabase.objects.map.Layer;
24 import de.intevation.gnv.artifactdatabase.objects.map.MapService; 51 import de.intevation.gnv.artifactdatabase.objects.map.MapService;
25
26 import de.intevation.gnv.propertiesreader.PropertiesReader; 52 import de.intevation.gnv.propertiesreader.PropertiesReader;
27 import de.intevation.gnv.propertiesreader.PropertiesReaderFactory; 53 import de.intevation.gnv.propertiesreader.PropertiesReaderFactory;
28
29 import de.intevation.gnv.util.XMLUtils; 54 import de.intevation.gnv.util.XMLUtils;
30
31 import java.io.IOException;
32 import java.io.InputStream;
33 import java.io.InputStreamReader;
34 import java.io.OutputStream;
35 import java.io.OutputStreamWriter;
36
37 import java.util.ArrayList;
38 import java.util.Collection;
39 import java.util.HashMap;
40 import java.util.Iterator;
41 import java.util.List;
42 import java.util.Locale;
43 import java.util.Map;
44
45 import org.apache.log4j.Logger;
46
47 import org.restlet.Client;
48
49 import org.restlet.data.ClientInfo;
50 import org.restlet.data.Language;
51 import org.restlet.data.Method;
52 import org.restlet.data.Preference;
53 import org.restlet.data.Protocol;
54 import org.restlet.data.Request;
55 import org.restlet.data.Response;
56
57 import org.restlet.representation.Representation;
58 import org.restlet.representation.StringRepresentation;
59
60 import org.w3c.dom.Document;
61 import org.w3c.dom.Element;
62 import org.w3c.dom.Node;
63 import org.w3c.dom.NodeList;
64 55
65 /** 56 /**
66 * The default implementation of <code>ArtifactDatabaseClient</code> which 57 * The default implementation of <code>ArtifactDatabaseClient</code> which
67 * implements methods to communicate via HTTP protocol with the artifact server. 58 * implements methods to communicate via HTTP protocol with the artifact server.
68 * 59 *
272 } 263 }
273 264
274 265
275 private InputStream doPostRequest(String requestUrl, Document requestBody) 266 private InputStream doPostRequest(String requestUrl, Document requestBody)
276 throws IOException { 267 throws IOException {
268
269 log.debug("URL: "+ requestUrl);
270 log.debug("Body");
271 log.debug(XMLUtils.writeDocument2String(requestBody));
272
277 Client client = new Client(Protocol.HTTP); 273 Client client = new Client(Protocol.HTTP);
278 Request request = initialize(new Request(Method.POST, requestUrl)); 274 Request request = initialize(new Request(Method.POST, requestUrl));
279 String documentBody = XMLUtils.writeDocument2String(requestBody); 275 String documentBody = XMLUtils.writeDocument2String(requestBody);
280 Representation representation = new StringRepresentation(documentBody); 276 Representation representation = new StringRepresentation(documentBody);
281 request.setEntity(representation); 277 request.setEntity(representation);
1089 log.debug("DefaultArtifactDatabaseClient.createMetaDataRequestBody"); 1085 log.debug("DefaultArtifactDatabaseClient.createMetaDataRequestBody");
1090 Document document = XMLUtils.newDocument(); 1086 Document document = XMLUtils.newDocument();
1091 Node rootNode = this.createArtifactElement(document, "GetMetaData"); 1087 Node rootNode = this.createArtifactElement(document, "GetMetaData");
1092 document.appendChild(rootNode); 1088 document.appendChild(rootNode);
1093 1089
1094 Element locationNode = this.createArtifactElement(document, "location"); 1090 if (geometry != null){
1095 locationNode.setAttribute("srs", srs); 1091 Element locationNode = this.createArtifactElement(document, "location");
1096 locationNode.appendChild(document.createTextNode(geometry)); 1092 locationNode.setAttribute("srs", srs);
1097 rootNode.appendChild(locationNode); 1093 locationNode.appendChild(document.createTextNode(geometry));
1098 1094 rootNode.appendChild(locationNode);
1095 }
1099 Element mapServicesNode = this.createArtifactElement(document, 1096 Element mapServicesNode = this.createArtifactElement(document,
1100 "mapservices"); 1097 "mapservices");
1101 Iterator<MapService> it = mapServices.iterator(); 1098 Iterator<MapService> it = mapServices.iterator();
1102 while (it.hasNext()){ 1099 while (it.hasNext()){
1103 MapService mapService = it.next(); 1100 MapService mapService = it.next();

http://dive4elements.wald.intevation.org