Configuration
You need to configure as follow:- Configure dependencies
- Configure Camel servlet
- Configure Camel route
Configure dependencies
In pom.xml:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-servlet</artifactId> <version>${camel.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-http4</artifactId> <version>${camel.version}</version> </dependency>
Configure Camel servlet
In web.xml:
Or, alternatively, in java:
<servlet> <servlet-name>CamelServlet</servlet-name> <display-name>Camel Http Transport Servlet</display-name> <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CamelServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
Or, alternatively, in java:
import javax.servlet.annotation.WebServlet; @WebServlet(name = "CamelServlet", urlPatterns = { "/services/*" }, loadOnStartup = 1) public class CamelRestServlet extends org.apache.camel.component.servlet.CamelHttpTransportServlet { private static final long serialVersionUID = 2886685336873526067L; //Servlet secuestrado por Camel para procesar las peticiones de entrada a su ruta proxy }
Configure Camel route
In camel-context.xml:
<camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="servlet:/service1?matchOnUriPrefix=true"/> <log message="Redirecting to service1"/> <to uri="http4://otherDomain:8080/otherApp/service1?bridgeEndpoint=true&throwExceptionOnFailure=false"/> </route> <route> <from uri="servlet:/service2?matchOnUriPrefix=true"/> <log message="Redirecting to service2"/> <to uri="http4://otherDomain:8080/otherApp/service2?bridgeEndpoint=true&throwExceptionOnFailure=false"/> </route> </camelContext>
Testing
In your app is published in http://localhost:8080/myApp, then you will get the following behaviour:
When calling http://localhost:8080/myApp/services/service1/test?a=b Camel will redirect to http://otherDomain:8080/otherApp/service1/test?a=b
No hay comentarios:
Publicar un comentario