Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/server/MetaDataServiceImpl.java @ 2508:4aa70825bde1
map print: generate valid url to access service.
flys-client/trunk@4363 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 09 May 2012 11:18:24 +0000 |
parents | 4a6814be92ba |
children | f2039d030b5e |
line wrap: on
line source
package de.intevation.flys.client.server; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.apache.log4j.Logger; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import de.intevation.artifacts.common.ArtifactNamespaceContext; import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.flys.client.shared.exceptions.ServerException; import de.intevation.flys.client.client.services.MetaDataService; import de.intevation.artifacts.httpclient.exceptions.ConnectionException; import de.intevation.artifacts.httpclient.http.HttpClient; import de.intevation.artifacts.httpclient.http.HttpClientImpl; import de.intevation.flys.client.shared.model.DataCageTree; import de.intevation.flys.client.server.meta.Converter; public class MetaDataServiceImpl extends RemoteServiceServlet implements MetaDataService { private static final Logger logger = Logger.getLogger(MetaDataServiceImpl.class); public static final String ERROR_NO_META_DATA_FOUND = "error_no_meta_data_found"; @Override public DataCageTree getMetaData( String locale, String artifactId, String userId, String outs, String parameters ) throws ServerException { logger.info("MetaDataService.getMetaData"); // Create the query document. String url = getServletContext().getInitParameter("server-url"); Document doc = XMLUtils.newDocument(); XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( doc, ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); Element meta = ec.create("meta"); if (artifactId != null) { Element artifactEl = ec.create("artifact-id"); artifactEl.setAttribute("value", artifactId); meta.appendChild(artifactEl); } if (userId != null) { Element userEl = ec.create("user-id"); userEl.setAttribute("value", userId); meta.appendChild(userEl); } if (outs != null) { Element outsEl = ec.create("outs"); outsEl.setAttribute("value", outs); meta.appendChild(outsEl); } if (parameters != null) { Element paramsEl = ec.create("parameters"); paramsEl.setAttribute("value", parameters); meta.appendChild(paramsEl); } doc.appendChild(meta); // Fire. HttpClient client = new HttpClientImpl(url, locale); try { Converter converter = new Converter(); return converter.convert(client.callService(url, "metadata", doc)); } catch (ConnectionException ce) { ce.printStackTrace(); } throw new ServerException(ERROR_NO_META_DATA_FOUND); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :