Thanks for your answer Christian, I think your existing knowledge is correct
about it.
As I debugged more into the CXF Source code, I have found that a destination
is selected with the following method.
It first selects the most general endpoint and tries to find more specific
ones later.
But it does not recognize variables such as {id} on the URL template.
destPaths: [ /myendpoint, /myendpoint/{id}/subendpoint,
/myendpoint/{id}/othersubendpoint ]
address: /myendpoint/42/subendpoint
... DestinationRegistryImpl {
...
private AbstractHTTPDestination getRestfulDestination(Set<String>
destPaths, String address) {
int len = -1;
AbstractHTTPDestination ret = null;
for (String path : destPaths) {
String thePath = path.length() > 1 && path.endsWith(SLASH)
? path.substring(0, path.length() - 1) : path;
if ((address.equals(thePath)
|| SLASH.equals(thePath)
|| (address.length() > thePath.length()
&& address.startsWith(thePath) &&
address.charAt(thePath.length()) == '/'))
&& thePath.length() > len) {
ret = getDestinationForPath(path);
len = path.length();
}
}
return ret;
}
...
}
This returns always Destination related with "/myendpoint" for the given
inputs above,
so this type of modularization does not seem to be possible with current
implementation.
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html