public class MultiRPCClient<I extends RPCOps>
An RPC client connects to the specified server and allows to make calls using specified remote interface to the server that perform various useful tasks. Please see the Client RPC section of Corda Documentation to learn more about how this API works. Only a brief description is provided here.
Calling start returns an interface RPCConnection containing a proxy that allows making RPCs calls to the server.
This is a blocking communication, and if the server throws an exception then it will be rethrown on the client. Proxies are thread safe and
may be used to invoke multiple RPCs in parallel.
RPC sends and receives are logged on the net.corda.rpc logger.
In case of loss of connection to the server, the client will try to reconnect using the settings provided via
class CordaRPCClientConfiguration. If the client was created using a list of hosts via haAddressPool, automatic failover will occur
(the servers have to be started in HA mode). While attempting failover, current and future RPC calls will throw
exception RPCException.
It is also possible to add interface RPCConnectionListeners event before connection is started to be notified about connection lifecycle.
Please see documentation on interface RPCConnectionListener for more details.
public static net.corda.client.rpc.ext.MultiRPCClient.Companion Companion
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@NotNull
CordaRPCClientConfiguration configuration)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password)
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@NotNull
java.lang.ClassLoader classLoader,
@NotNull
CordaRPCClientConfiguration configuration)
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@NotNull
CordaRPCClientConfiguration configuration)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader,
@Nullable
Trace externalTrace,
@Nullable
Actor impersonatedActor,
@Nullable
CordaX500Name targetLegalIdentity)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader,
@Nullable
Trace externalTrace,
@Nullable
Actor impersonatedActor)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader,
@Nullable
Trace externalTrace)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration)
@JvmOverloads
public MultiRPCClient(@NotNull
NetworkHostAndPort hostAndPort,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader,
@Nullable
Trace externalTrace,
@Nullable
Actor impersonatedActor,
@Nullable
CordaX500Name targetLegalIdentity)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader,
@Nullable
Trace externalTrace,
@Nullable
Actor impersonatedActor)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader,
@Nullable
Trace externalTrace)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration,
@Nullable
java.lang.ClassLoader classLoader)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration,
@Nullable
ClientRpcSslOptions sslConfiguration)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers,
@NotNull
CordaRPCClientConfiguration configuration)
@JvmOverloads
public MultiRPCClient(@NotNull
java.util.List<net.corda.core.utilities.NetworkHostAndPort> haAddressPool,
@NotNull
java.lang.Class<I> rpcOpsClass,
@NotNull
java.lang.String username,
@NotNull
java.lang.String password,
@Nullable
java.util.Set<? extends net.corda.core.serialization.SerializationCustomSerializer<?,?>> customSerializers)
public boolean addConnectionListener(@NotNull
RPCConnectionListener<I> listener)
Adds interface RPCConnectionListener to this class MultiRPCClient to be informed about important connectivity events.
true if the element has been added, false when listener is already contained in the set of listeners.interface RPCConnectionListener,
class MultiRPCClientpublic boolean removeConnectionListener(@NotNull
RPCConnectionListener<I> listener)
Removes interface RPCConnectionListener from this class MultiRPCClient.
true if the element has been successfully removed; false if it was not present in the set of listeners.interface RPCConnectionListener,
class MultiRPCClient@NotNull public java.util.concurrent.CompletableFuture<net.corda.client.rpc.RPCConnection> start()
Logs in to the target server and returns an active connection.
It only makes sense to this method once. If it is called repeatedly it will return the same by reference CompletableFuture
interface RPCConnection or throwing exception RPCException if the server version is too low or if the server is not
reachable within a reasonable timeout or if login credentials provided are incorrect.public void stop()
Stops the client and closes interface RPCConnection if it has been previously established
interface RPCConnectionpublic void close()