package camel.gateway.route; import camel.gateway.processor.ErrorHandle; import camel.gateway.processor.GatewayProcessor; import camel.gateway.processor.SignProcessor; import camel.gateway.processor.WsProcessor; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.springframework.stereotype.Component; /** * @author HZY * @vsrsion 1.0 * Created at 2017/3/13. */ @Component public class GatewayRouterBuilder extends RouteBuilder { protected static final String SIMPLE_ENDPOINT_ADDRESS = "http://0.0.0.0:3333/ws/api"; protected static final String SIMPLE_ENDPOINT_URI = "cxf:" + SIMPLE_ENDPOINT_ADDRESS + "?serviceClass=camel.gateway.processor.WsService" // + "&dataFormat=CXF_MESSAGE" ; @Override public void configure() throws Exception { from("jetty:http://0.0.0.0:9998?matchOnUriPrefix=true").routeId("proxy") .to("jetty:http://192.168.1.221:10000?bridgeEndpoint=true&throwExceptionOnFailure=false"); from("jetty:http://0.0.0.0:9999/api").routeId("api") .process(new GatewayProcessor()) .routingSlip(method(GatewayProcessor.class, "route")); from("jetty:http://0.0.0.0:9999/error/{error}") .choice() .when(header(Exchange.HTTP_URI).contains("paramError")).bean(new ErrorHandle(), "paramError") .when(header(Exchange.HTTP_URI).contains("outdataError")).bean(new ErrorHandle(), "outdataError") .when(header(Exchange.HTTP_URI).contains("signValidError")).bean(new ErrorHandle(), "signValidError") .when(header(Exchange.HTTP_URI).contains("unauthorizedError")).bean(new ErrorHandle(), "unauthorizedError") .endChoice(); from("jetty:http://0.0.0.0:9999/healthy").routeId("healthy") .log("=========================心跳测试====================="); from("jetty:http://0.0.0.0:9999/sign").routeId("sign") .process(new SignProcessor()); from(SIMPLE_ENDPOINT_URI) .setHeader(Exchange.BEAN_MULTI_PARAMETER_ARRAY, constant(true)) .process(new WsProcessor()) .routingSlip(method(GatewayProcessor.class, "route")) .to("bean:wsProcessor?method=responseWs") ; } }