Camel Component: RMI - 6.3

Talend ESB Mediation Developer Guide

EnrichVersion
6.3
EnrichProdName
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
task
Design and Development
EnrichPlatform
Talend ESB

The rmi: component binds Exchanges to the RMI protocol (JRMP).

Since this binding is just using RMI, normal RMI rules still apply regarding what methods can be invoked. This component supports only Exchanges that carry a method invocation from an interface that extends the Remote interface. All parameters in the method should be either Serializable or Remote objects.

For more information about the Remote interface, see the RMI API documentation, and for more information about the Serializable interface, see the IO API documentation on http://docs.oracle.com/.

Maven users will need to add the following dependency to their pom.xml for this component:

<dependency>
   <groupId>org.apache.camel</groupId>
   <artifactId>camel-rmi</artifactId>
   <!-- use the same version as your Camel core version -->
   <version>x.x.x</version>
</dependency>

URI format

rmi://rmi-regisitry-host:rmi-registry-port/registry-path[?options]

For example:

rmi://localhost:1099/path/to/service

You can append query options to the URI in the following format, ?option=value&option=value&...

Options

Name

Default Value

Description

method

null

You can set the name of the method to invoke.

remoteInterfaces

null

List of interface names separated by comma.

Usage

To call out to an existing RMI service registered in an RMI registry, create a route similar to the following:

from("pojo:foo").to("rmi://localhost:1099/foo");

To bind an existing Camel processor or service in an RMI registry, define an RMI endpoint as follows:

RmiEndpoint endpoint= (RmiEndpoint) endpoint("rmi://localhost:1099/bar");
endpoint.setRemoteInterfaces(ISay.class);
from(endpoint).to("pojo:bar");

Note that when binding an RMI consumer endpoint, you must specify the Remote interfaces exposed.

In XML DSL you can do as follows:

<camel:route>
   <from uri="rmi://localhost:37541/helloServiceBean?remoteInterfaces=
org.apache.camel.example.osgi.HelloService"/>
   <to uri="bean:helloServiceBean"/>
</camel:route>