# HG changeset patch # User Tom Gottfried # Date 1665572016 -7200 # Node ID 0834c2591e14def5b05ab835d233613e352745c1 # Parent cd07130ded8dba109713823ce6732481da2654c6 Route MapServer through wiki container This reduces the need for local configuration changes to get a working Docker-based setup. diff -r cd07130ded8d -r 0834c2591e14 artifacts/doc/conf/conf.xml --- a/artifacts/doc/conf/conf.xml Wed Oct 12 10:45:13 2022 +0200 +++ b/artifacts/doc/conf/conf.xml Wed Oct 12 12:53:36 2022 +0200 @@ -321,7 +321,8 @@ - + + diff -r cd07130ded8d -r 0834c2591e14 docker/Dockerfile.mapserv --- a/docker/Dockerfile.mapserv Wed Oct 12 10:45:13 2022 +0200 +++ b/docker/Dockerfile.mapserv Wed Oct 12 12:53:36 2022 +0200 @@ -47,5 +47,4 @@ # httpd config ADD httpd-mapserver.conf /etc/httpd/conf.d/ -EXPOSE 80 CMD ["/usr/sbin/httpd", "-DFOREGROUND"] diff -r cd07130ded8d -r 0834c2591e14 docker/README --- a/docker/README Wed Oct 12 10:45:13 2022 +0200 +++ b/docker/README Wed Oct 12 12:53:36 2022 +0200 @@ -1,10 +1,8 @@ Configure: -_ Change 'localhost' to the hostname of your docker host in - artifacts/doc/conf/conf.xml _ Add to gwt-client/config/mapfish/config.yaml to enable map printing: - !dnsMatch host: - port: 8081 + port: 8080 Build and run: diff -r cd07130ded8d -r 0834c2591e14 docker/docker-compose.yml --- a/docker/docker-compose.yml Wed Oct 12 10:45:13 2022 +0200 +++ b/docker/docker-compose.yml Wed Oct 12 12:53:36 2022 +0200 @@ -36,8 +36,6 @@ - ./mapserver/cgi-bin:/var/www/cgi-bin - ../artifacts/doc/conf/mapserver:/opt/d4e/bin/conf/mapserver - artifacts-data:/opt/d4e/bin/artifacts-data - ports: - - 8081:80 client: container_name: "d4eriver-client" build: diff -r cd07130ded8d -r 0834c2591e14 docker/httpd-wiki.conf --- a/docker/httpd-wiki.conf Wed Oct 12 10:45:13 2022 +0200 +++ b/docker/httpd-wiki.conf Wed Oct 12 12:53:36 2022 +0200 @@ -6,6 +6,10 @@ ProxyPass "/d4e-river" "ajp://d4eriver-client:8009/d4e-river" ProxyPassReverse "/d4e-river" "ajp://d4eriver-client:8009/d4e-river" +# MapServer +ProxyPass "/cgi-bin" "http://d4eriver-mapserv/cgi-bin" +ProxyPassReverse "/cgi-bin" "http://d4eriver-mapserv/cgi-bin" + # Wiki WSGIScriptAlias /wiki /opt/wiki/moin-1.9.9/wiki/server/moin.wsgi WSGIDaemonProcess moin user=wiki group=wiki \ diff -r cd07130ded8d -r 0834c2591e14 gwt-client/src/main/java/org/dive4elements/river/client/server/MapPrintServiceImpl.java --- 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,