package camel.gateway.route; import camel.log.TracerFormatter; import camel.gateway.processor.ErrorHandle; import camel.gateway.processor.GatewayProcessor; import camel.gateway.processor.SignProcessor; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.processor.interceptor.Tracer; import org.springframework.stereotype.Component; /** * @author HZY * @vsrsion 1.0 * Created at 2017/3/13. */ @Component public class GatewayRouterBuilder extends RouteBuilder { @Override public void configure() throws Exception { this.getContext().setUseMDCLogging(true); this.getContext().setTracing(true); Tracer tracer = new Tracer(); // DefaultTraceFormatter formatter = new DefaultTraceFormatter(); TracerFormatter formatter = new TracerFormatter(); formatter.setShowHeaders(true); formatter.setShowBody(true); formatter.setShowBodyType(true); formatter.setShowOutHeaders(true); formatter.setShowOutBody(true); formatter.setShowOutBodyType(true); tracer.setFormatter(formatter); this.getContext().addInterceptStrategy(tracer); this.getContext().getProperties().put(Exchange.LOG_DEBUG_BODY_STREAMS, "true"); 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("jetty:http://0.0.0.0:9999/rest").routeId("restTest") .to("restlet:http://192.168.1.221:10000/api/v1.0/admin/doctors/admin/13?autoCloseStream=true"); } }