Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

RMI

...

Component

...

The

...

rmi:

...

component

...

binds

...

Exchange

...

s

...

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.

...

Maven

...

users

...

will

...

need

...

to

...

add

...

the

...

following

...

dependency

...

to

...

their

...

pom.xml

...

for

...

this

...

component:

Code Block
xml
xml

{code:xml}
<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>
{code}

h3. URI format

{code}

URI format

Code Block
rmi://rmi-regisitry-host:rmi-registry-port/registry-path[?options]
{code}

For

...

example:

{
Code Block
}
rmi://localhost:1099/path/to/service
{code}

You

...

can

...

append

...

query

...

options

...

to

...

the

...

URI

...

in

...

the

...

following

...

format,

...

?option=value&option=value&...

Options

Wiki Markup
}}

h3. 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. |
{div}

h3. Using

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

{code:java}

Using

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

Code Block
java
java
from("pojo:foo").to("rmi://localhost:1099/foo");
{code}

To

...

bind

...

an

...

existing

...

camel

...

processor

...

or

...

service

...

in

...

an

...

RMI

...

registry,

...

define

...

an

...

RMI

...

endpoint

...

as

...

follows:

Code Block
java
java


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

Note

...

that

...

when

...

binding

...

an

...

RMI

...

consumer

...

endpoint,

...

you

...

must

...

specify

...

the

...

Remote

...

interfaces

...

exposed.

...

In

...

XML

...

DSL

...

you

...

can

...

do

...

as

...

follows

...

from

...

Camel

...

2.7

...

onwards:

Code Block
xml
xml

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

{include:Endpoint See Also}
Include Page
Endpoint See Also
Endpoint See Also