Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/server/MapPrintServiceImpl.java @ 9755:0834c2591e14 3.2.x
Route MapServer through wiki container
This reduces the need for local configuration changes to get
a working Docker-based setup.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 12 Oct 2022 12:53:36 +0200 |
parents | 0a5239a1e46e |
children | 2a78ac6c8045 |
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/server/MapPrintServiceImpl.java Wed Oct 12 10:45:13 2022 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/server/MapPrintServiceImpl.java Wed Oct 12 12:53:36 2022 +0200 @@ -24,6 +24,8 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collections; @@ -76,7 +78,7 @@ public Layer() { } - public boolean setup(Element element) { + public boolean setup(Element element, HttpServletRequest req) { Element parent = (Element)element.getParentNode(); String parentName = parent.getAttribute("name"); @@ -94,7 +96,15 @@ return false; } - url = element.getAttributeNS(ns, "url"); + url = element.getAttributeNS(ns, "url"); + try { + // if given URL is not absolute, complement it + url = new URL(new URL(req.getRequestURL().toString()), + url).toString(); + } catch (MalformedURLException mue) { + log.error("Failed to complement layer URL: " + + mue.getMessage()); + } layers = element.getAttributeNS(ns, "layers"); description = element.getAttributeNS(ns, "description"); @@ -134,6 +144,7 @@ } // class Layer protected static String generateSpec( + HttpServletRequest req, Document descDocument, MapConfig mapConfig, Double minX, Double minY, @@ -162,7 +173,7 @@ for (int i = 0, N = facets.getLength(); i < N; ++i) { Element element = (Element)facets.item(i); - if (l.setup(element)) { + if (l.setup(element, req)) { ls.add(l); l = new Layer(); } @@ -378,6 +389,7 @@ } String spec = generateSpec( + req, descDocument, mapConfig, minX, minY,