RMI Component
The rmi: component bind the PojoExchanges binds Exchanges to the RMI protocol (JRMP).
Since this binding is just using RMI, normal RMI rules still apply in regards to regarding what the methods can be used over itinvoked. This component supports only supports PojoExchanges Exchanges that carry a method invocation that is part of from an interface that extends the Remote interface. All parameters in the method should be either Serializable or Remote
objects too..
Maven users will need to add the following dependency to their pom.xml
for this component:
Code Block |
---|
|
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-rmi</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
|
URI format
Code Block |
---|
rmi://rmi-regisitry-host:rmi-registry-port/registry-path[?options]
|
For example:
Code Block |
---|
rmi://localhost:1099/path/to/service
|
You can append query options to the URI in the following format, ?option=value&option=value&...
Options
Div |
---|
class | confluenceTableSmall |
---|
|
Name | Default Value | Description |
---|
method | null | You can set the name of the method to invoke. | remoteInterfaces | null | Its now possible to use this option from Camel 2.7: in the XML DSL. It can be a list of interface names separated by comma. |
|
Using
To call out to an existing RMI service registered in an RMI registry, create a Route route similar to the following:
Code Block |
---|
|
from("pojo:foo").to("rmi://localhost:1099/foo");
|
To bind an existing camel processor or service in an RMI registry, create a Route likedefine an RMI endpoint as follows:
Code Block |
---|
|
RmiEndpoint endpoint= (RmiEndpoint) endpoint("rmi://localhost:1099/bar");
endpoint.setRemoteInterfaces(ISay.class);
from(endpoint).to("pojo:bar");
|
Notice Note that when binding an inbound RMI consumer endpoint, you must specify the Remote
interfaces exposed must be specified.
Options
Name | Default Value | Description |
---|
method | null | As of 1.3 or later you can set the name of the method to invoke |
In XML DSL you can do as follows from Camel 2.7 onwards:
Code Block |
---|
|
<camel:route>
<from uri="rmi://localhost:37541/helloServiceBean?remoteInterfaces=org.apache.camel.example.osgi.HelloService"/>
<to uri="bean:helloServiceBean"/>
</camel:route>
|
Include Page |
---|
|
Include Page |
---|
CAMEL:Endpoint See Also | CAMEL:Endpoint See Also |
|