Archived
This forum has been archived. Please start a new discussion on GitHub.
Can a Servant implement both dynamic and static invocations
From the docs it seems that a Servant that want to use Dynamic Invocation needs to extend Ice.Blobject but than, using Java, it will not be able to extends the class generated from Slice.
0
Comments
-
Hi,
You are correct, a single servant cannot handle both dynamic and static invocations. If you can determine from the information in Ice.Current whether a request should be handled by a Blobject servant or a regular servant, you can use a servant locator to route a request to the proper servant.
Hope that helps,
Mark0 -
Thanks, but I am not sure I fully understand how to do that.
1. How can I determine that from the Ice.Current
2. Isn't that too late? That is done in the Servant/Skeleton that was dispatched, no?0 -
1. How can I determine that from the Ice.Current2. Isn't that too late? That is done in the Servant/Skeleton that was dispatched, no?
Take care,
Mark0 -
Ok, thanks.
I see now. Assuming you are referring to Ice.LocatorPrx do you have any examples of changing the clients/proxy locator?
Can it delegate to the default locator (e.g. after renaming the object identity)?0 -
Thanks, I was aware of that but thought you were referring to client side interception. Assuming you were actually referring to server side interception by using the ServantLocator I can clearly see how it can work.
BTW, Any reason not to make any generated Skeleton extends Blobject instead of extending directly ObjectImpl and considering the ice_invoke method (which can throw "not support" exception as default implementation?0