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