You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2008/04/06 17:47:37 UTC

svn commit: r645253 - /incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java

Author: lresende
Date: Sun Apr  6 08:47:35 2008
New Revision: 645253

URL: http://svn.apache.org/viewvc?rev=645253&view=rev
Log:
TUSCANY-2202 - properly handling path when running in a web container environment

Modified:
    incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java

Modified: incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java?rev=645253&r1=645252&r2=645253&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java (original)
+++ incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java Sun Apr  6 08:47:35 2008
@@ -147,7 +147,7 @@
         // No authentication required for a get request
 
         // Get the request path
-        String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8");
+        String path = URLDecoder.decode(getPath(request), "UTF-8");
 
         logger.info(">>> FeedEndPointServlet " + request.getRequestURI());
 
@@ -320,7 +320,7 @@
         }
 
         // Get the request path
-        String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8");
+        String path = URLDecoder.decode(getPath(request), "UTF-8");
 
         if (path == null || path.length() == 0 || path.equals("/")) {
             org.apache.abdera.model.Entry createdFeedEntry = null;
@@ -426,7 +426,7 @@
         }
 
         // Get the request path
-        String path = request.getRequestURI().substring(request.getServletPath().length());
+        String path = URLDecoder.decode(getPath(request), "UTF-8");
 
         if (path != null && path.startsWith("/")) {
             String id = path.substring(1);
@@ -512,7 +512,7 @@
         }
 
         // Get the request path
-        String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8");
+        String path = URLDecoder.decode(getPath(request), "UTF-8");
 
         String id;
         if (path != null && path.startsWith("/")) {
@@ -533,6 +533,31 @@
                 throw new ServletException((Throwable)responseMessage.getBody());
             }
         }
+    }
+    
+    /**
+     * Retrieve the path considering embedded container and/or webapp container
+     * @param request
+     * @return
+     */
+    private String getPath(HttpServletRequest request) {
+    	String path = null;
+
+    	String requestURI = request.getRequestURI();
+    	if(! requestURI.endsWith("/")) {
+    		requestURI += "/";
+    	}
+    	
+    	if(request.getContextPath() == null || request.getContextPath().length() == 0) {
+    		//embedded container
+    		path = request.getRequestURI().substring(request.getServletPath().length());
+    	} else {
+    		//web-container case... 
+    		path = request.getRequestURI().substring(request.getContextPath().length() + request.getServletPath().length());    		
+    	}
+    	
+    	return path;
+    	
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org