You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/09/11 08:34:55 UTC
svn commit: r1383253 -
/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
Author: rmannibucau
Date: Tue Sep 11 06:34:54 2012
New Revision: 1383253
URL: http://svn.apache.org/viewvc?rev=1383253&view=rev
Log:
fixing the way rest urls are built
Modified:
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
Modified: openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1383253&r1=1383252&r2=1383253&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java (original)
+++ openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Tue Sep 11 06:34:54 2012
@@ -56,6 +56,7 @@ import java.net.MalformedURLException;
import java.net.Socket;
import java.net.URI;
import java.net.URISyntaxException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -211,10 +212,6 @@ public abstract class RESTService implem
restEjbs.clear();
}
- private static boolean isManagedBean(final BeanContext ctx) {
- return BeanType.MANAGED.equals(ctx.getComponentType());
- }
-
private boolean hasEjbAndIsNotAManagedBean(final Map<String, EJBRestServiceInfo> restEjbs, final String clazz) {
return restEjbs.containsKey(clazz) && !BeanType.MANAGED.equals(restEjbs.get(clazz).context.getComponentType());
}
@@ -364,16 +361,30 @@ public abstract class RESTService implem
return address.substring(0, address.lastIndexOf("/"));
}
- String webCtx = context; // context can get the app path too
+ // context can get the app path too
+ // so keep only web context without /
+ String webCtx = context;
+ if (webCtx.startsWith("/")) {
+ webCtx = webCtx.substring(1);
+ }
if (webCtx.contains("/")) {
webCtx = webCtx.substring(0, webCtx.indexOf("/"));
}
- int idx = address.indexOf(webCtx);
- String base = address.substring(0, idx);
- if (!base.endsWith("/") && !webCtx.startsWith("/")) {
- base = base + '/';
+
+ // get root path ending with /
+ String base;
+ try {
+ final URL url = new URL(address);
+ base = url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + "/";
+ } catch (MalformedURLException e) {
+ int idx = address.indexOf(webCtx);
+ base = address.substring(0, idx);
+ if (!base.endsWith("/") && !webCtx.startsWith("/")) {
+ base = base + '/';
+ }
}
- return base + context;
+
+ return base + webCtx;
}
private String getAddress(String context, Class<?> clazz) {