}
private Remote createRmiService(final Interface serviceInterface) {
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(UnicastRemoteObject.class);
enhancer.setCallback(new MethodInterceptor() {
public Object intercept(Object arg0, Method method, Object[] args, MethodProxy arg3) throws Throwable {
try {
return invokeTarget(JavaInterfaceUtil.findOperation(method, serviceInterface.getOperations()), args);
} catch (InvocationTargetException e) {
final Throwable cause = e.getCause();