THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Wiki Markup |
---|
h2. RMI Component The *rmi:* component binds [PojoExchanges|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/pojo/PojoExchange.html]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 [PojoExchanges|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/pojo/PojoExchange.html]Exchanges that carry a method invocation from an interface that extends the [Remote|http://java.sun.com/j2se/1.3/docs/api/java/rmi/Remote.html] interface. All parameters in the method should be either [Serializable|http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html] or {{Remote}} objects. Maven users will need to add the following dependency to their {{pom.xml}} for this component: {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} rmi://rmi-regisitry-host:rmi-registry-port/registry-path[?options] {code} For example: {code} rmi://localhost:1099/path/to/service {code} You can append query options to the URI in the following format, {{?option=value&option=value&...}} 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} 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: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: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} |