Repository: marmotta Updated Branches: refs/heads/MARMOTTA-584 e3f709f57 -> 1ff2a1d95
MARMOTTA-651: trying all alternatives in case jax-rs doesn't route to the expected method Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/1ff2a1d9 Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/1ff2a1d9 Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/1ff2a1d9 Branch: refs/heads/MARMOTTA-584 Commit: 1ff2a1d9567165ce8b4c7d3d1115b1e39d5132a1 Parents: e3f709f Author: Sergio Fernández <[email protected]> Authored: Tue Jul 26 09:58:57 2016 +0200 Committer: Sergio Fernández <[email protected]> Committed: Tue Jul 26 09:58:57 2016 +0200 ---------------------------------------------------------------------- .../sparql/webservices/SparqlWebService.java | 25 +++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/marmotta/blob/1ff2a1d9/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java index 7d5f76b..34f0c4b 100644 --- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java +++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java @@ -20,6 +20,7 @@ package org.apache.marmotta.platform.sparql.webservices; import com.google.common.collect.Lists; import com.google.common.io.CharStreams; import org.apache.commons.collections.EnumerationUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.marmotta.commons.http.ContentType; import org.apache.marmotta.commons.http.MarmottaHttpUtils; @@ -190,9 +191,17 @@ public class SparqlWebService { @POST @Consumes({"application/x-www-url-form-urlencoded", "application/x-www-form-urlencoded"}) @Path(SELECT) - public Response selectPostForm(@FormParam("query") String query, @QueryParam("output") String resultType, @Context HttpServletRequest request) { - if(resultType != null && outputMapper.containsKey(resultType)) resultType = outputMapper.get(resultType); - return select(query, resultType, request); + public Response selectPostForm(@FormParam("query") String query, + @QueryParam("output") String resultType, + @Context HttpServletRequest request) { + if (StringUtils.isBlank(query)) { + // query might be in the body request... (MARMOTTA-651) + // jax-rs doesn't go to selectPost() method + return selectPost(resultType, request); + } else { + if (resultType != null && outputMapper.containsKey(resultType)) resultType = outputMapper.get(resultType); + return select(query, resultType, request); + } } /** @@ -208,16 +217,14 @@ public class SparqlWebService { * @return the query result in the format passed as argument */ @POST + @Consumes("*/*") @Path(SELECT) public Response selectPost(@QueryParam("output") String resultType, @Context HttpServletRequest request) { try { if (resultType != null && outputMapper.containsKey(resultType)) resultType = outputMapper.get(resultType); - if (request.getCharacterEncoding() == null) { - request.setCharacterEncoding("utf-8"); - } - String query = CharStreams.toString(request.getReader()); - //String query = IOUtils.toString(request.getInputStream(),"utf-8"); - log.debug("Query: {}", query); + if (request.getCharacterEncoding() == null) { request.setCharacterEncoding("utf-8"); } + final String query = CharStreams.toString(request.getReader()); + log.debug("SPARQL Query: {}", query); return select(query, resultType, request); } catch (IOException e) { log.error("body not found", e);
