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);

Reply via email to