You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

How to use Camel as a HTTP proxy between a client and server

You may have an existing HTTP service, which you want to use Camel in between as a proxy, between the client and the server.

This can be done using the Jetty component as follows:

  <route>
    <from uri="jetty:http://0.0.0.0:8080/myapp?matchOnUriPrefix=true"/>
    <to uri="jetty:http://realserverhostname:8090/myapp?bridgeEndpoint=true&amp;throwExceptionOnFailure=false"/>
  </route>

In the example above, we expose a HTTP service on localhost (0.0.0.0 means to expose on all network interfaces) port 8080, and using context path "myapp".
The option matchOnUriPrefix is set to true, to match any wildcards in the "myapp" context path. See more details here How do I let Jetty match wildcards.

Then we route to the <to> which is also a jetty endpoint, which sends the requests to the real HTTP server. The bridgeEndpoint option is set to true, to tell Camel that its a bridging from an incoming Jetty service (ie. to act as a HTTP adapter/proxy). The option throwExceptionOnFailure is set to false, to rely back any errors communicating with the real HTTP server directly to the client, without using any Camel Error Handling (ie. no exception is raised from Camel).

  • No labels