I like code. I saw this line:
serviceName = caller.substring(caller.indexOf(":")+1,caller.length());
you could leave out the length for the same effect:
serviceName = caller.substring(caller.indexOf(":")+1);
I think you should seperate out the java service from the common flow. Just call the java service first before the common flow and pass the results to the common flow. Since you would be calling the common flow anyway, it doesn’t seem that detrimental to call the jService first.
And so what you would have wanted from you post was for the Jservice to recursively call getCallingService() on some object until you were either at the top or at a level you like. You may just be able to call it on your “nss” an extra time and see if that gives you the next level up service.
In fact, while typing and searching the forums for “NSSerice” I got back this wonderful link:
I think it will answer your questions. If you do the same search (about 7 results), you call be on your way.