Mercurial > dive4elements > gnv-client
view gnv/src/main/java/de/intevation/gnv/action/WMSAction.java @ 585:2e690cb2247c
Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
gnv/trunk@736 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 05 Mar 2010 09:33:30 +0000 |
parents | cbd397712ecf |
children | ccd47d9887ec |
line wrap: on
line source
package de.intevation.gnv.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.w3c.dom.Document; import de.intevation.gnv.action.sessionmodel.SessionModel; import de.intevation.gnv.action.sessionmodel.SessionModelFactory; import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClient; import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory; import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; import de.intevation.gnv.util.XMLUtils; /** * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) */ public class WMSAction extends DescribeUIAction { public static final String XPATH_MAPSERVER_PATH = "/art:meta/art:mapserver/art:server/text()"; public static final String XPATH_MAPSERVER_MAPFILE = "/art:meta/art:mapserver/art:map/text()"; /** * the logger, used to log exceptions and additonaly information */ private static Logger logger = Logger.getLogger(WMSAction.class); /** * Constructor */ public WMSAction() { super(); } @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { logger.debug("WMSAction.execute"); try { SessionModel sm = SessionModelFactory.getInstance().getSessionModel( request); ArtifactObject artifact = sm.getCurrentArtifact(); ArtifactDatabaseClientFactory factory = ArtifactDatabaseClientFactory.getInstance(); ArtifactDatabaseClient adc = factory.getArtifactDatabaseClient( getLocale(request)); ArtifactObject artifactfactory = sm.getSelectedArtifactFactory(); // do wms publishing Document meta = adc.publishWMS(artifactfactory, artifact); String mapserverPath = XMLUtils.getStringXPath( meta, XPATH_MAPSERVER_PATH); String mapfilePath = XMLUtils.getStringXPath( meta, XPATH_MAPSERVER_MAPFILE); request.setAttribute("mapserver", mapserverPath); request.setAttribute("mapfile", mapfilePath); request.setAttribute("layer", artifact.getId()); return super.execute(mapping, form, request, response); } catch (Exception e) { logger.error(e, e); request.setAttribute( CommunicationKeys.REQUEST_EXCEPTION_MESSAGE_ID, e.getMessage()); return super.getExceptionForward(mapping); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :