}
public <B> CallableReference<B> getServiceReference() {
Message msgContext = ThreadMessageContext.getMessageContext();
// FIXME: [rfeng] Is this the service reference matching the caller side?
EndpointReference to = msgContext.getTo();
RuntimeComponentService service = (RuntimeComponentService) to.getContract();
RuntimeComponent component = (RuntimeComponent) to.getComponent();
CallableReference<B> callableReference = component.getComponentContext().getCallableReference(null, component, service);
ReferenceParameters parameters = msgContext.getFrom().getReferenceParameters();
((CallableReferenceExt<B>) callableReference).attachCallbackID(parameters.getCallbackID());
((CallableReferenceExt<B>) callableReference).attachConversation(parameters.getConversationID());