public static <T, I extends T> void registerRemoteService( @Nonnull final String description, @Nonnull final String rmiServer, final int rmiPort, @Nonnull final Class<T> service) throws RemoteException, NotBoundException { LOG.info("Registering remote service: " + description); IServiceProvider<T> serviceProvider = new ServiceLocator.ServiceProviderForRemote<T, I>(rmiServer, rmiPort, service); ServiceLocator.registerServiceProvider(service, serviceProvider); }