diff --git a/source/java/org/alfresco/web/scripts/TestWebScriptServer.java b/source/java/org/alfresco/web/scripts/TestWebScriptServer.java index 8437f4e02b..37653ce6e6 100644 --- a/source/java/org/alfresco/web/scripts/TestWebScriptServer.java +++ b/source/java/org/alfresco/web/scripts/TestWebScriptServer.java @@ -523,8 +523,8 @@ public class TestWebScriptServer req.addParameter(parts[0], (parts.length == 2) ? URLDecoder.decode(parts[1], "UTF-8") : null); } } - String pathInfo = iArgIndex == -1 ? uri : uri.substring(0, iArgIndex); - req.setPathInfo(URLDecoder.decode(pathInfo, "UTF-8")); + String requestURI = "/alfresco/service" + (iArgIndex == -1 ? uri : uri.substring(0, iArgIndex)); + req.setRequestURI(URLDecoder.decode(requestURI, "UTF-8")); } return req; diff --git a/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java b/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java index 9c9f952b84..94e647c399 100644 --- a/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java +++ b/source/java/org/alfresco/web/scripts/WebScriptServletRequest.java @@ -120,8 +120,8 @@ public class WebScriptServletRequest extends WebScriptRequestImpl */ public String getServicePath() { - String pathInfo = req.getPathInfo(); - return getServiceContextPath() + ((pathInfo == null) ? "" : req.getPathInfo()); + String pathInfo = getPathInfo(); + return getServiceContextPath() + ((pathInfo == null) ? "" : pathInfo); } /* (non-Javadoc) @@ -137,7 +137,10 @@ public class WebScriptServletRequest extends WebScriptRequestImpl */ public String getPathInfo() { - return req.getPathInfo(); + // NOTE: Don't use req.getPathInfo() - it truncates the path at first semi-colon in Tomcat + String requestURI = req.getRequestURI(); + String pathInfo = requestURI.substring(getServiceContextPath().length()); + return pathInfo; } /* (non-Javadoc) diff --git a/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java b/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java index 5a811a84a4..e60ce36a00 100644 --- a/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java +++ b/source/java/org/alfresco/web/scripts/WebScriptServletRuntime.java @@ -101,7 +101,10 @@ public class WebScriptServletRuntime extends WebScriptRuntime @Override protected String getScriptUrl() { - return req.getPathInfo(); + // NOTE: Don't use req.getPathInfo() - it truncates the path at first semi-colon in Tomcat + String requestURI = req.getRequestURI(); + String pathInfo = requestURI.substring((req.getContextPath() + req.getServletPath()).length()); + return pathInfo; } /* (non-Javadoc)