Hi,Willem.
this is my RouteBuilder:
---------------------------------------------------------------
public class MobileRouteBuilder extends RouteBuilder implements
        PropertyConstants {

    private String port;

    public void setPort(String port) {
        this.port = port;
    }

    private Tracer tracer = new Tracer();

    /**
     * 设置tracer的开关
     * 
     * @param exchange
     *            tracer
     * @return String
     * 
     */
    public void setTracing(Exchange exchange) {
        Message in = exchange.getIn();
        String enabletracer = (String) in.getHeader("tracer");
        if (enabletracer.equalsIgnoreCase("true")) {
            tracer.setEnabled(true);
            in.setBody("tracer on");
        } else {
            tracer.setEnabled(false);
            in.setBody("tracer off");
        }
    }

    @Override
    public void configure() throws Exception {

        // 通过手动新建tracer并设置setEnabled(false),能够在路由中加入一个不启用的tracer
        tracer.setEnabled(false);
        getContext().addInterceptStrategy(tracer);

        Set<String> keyset =
IntegrationServiceUtil.integrationServiceMap.keySet();
        Map<String, String> routeMap = new HashMap<String, String>();
        String value = null;
        StringBuffer strbuf = new StringBuffer();
        for (String k : keyset) {
            value = IntegrationServiceUtil.integrationServiceMap.get(k);
            if (value != null) {
                URL url = new URL(value);
                if (url.getPort()<0) {
                    strbuf.append("netty4-http:")
                       
.append(url.getProtocol()).append("://").append(url.getHost()).append(":80").append(url.getFile())
                        .append("?" +
"bridgeEndpoint=true&throwExceptionOnFailure=false");
                } else {
                    strbuf.append("netty4-http:").append(value)
                        .append("?" +
"bridgeEndpoint=true&throwExceptionOnFailure=false");
                }
                routeMap.put(k, strbuf.toString());
            }
            value = null;
            strbuf = new StringBuffer();
        }
        
        from("netty4-http:http://0.0.0.0:"; + port + "/rest?" +
"bridgeEndpoint=true&matchOnUriPrefix=true")
            .process(new LogProcessor())
            .process(new UTF8ToGBKProcessor())
            .process(new AdapterProcessor())
            .process(new IfAddUccodeProcess())
            .choice()
                .when(header("serviceNickName").isNull())
                    .to(routeMap.get("business"))
                .when(header("serviceNickName").isEqualTo(PRODUCTNICK))
                    .to(routeMap.get("i6p"))
                .when(header("serviceNickName").isEqualTo(WORKFLOWNICK))
                    .to(routeMap.get("workflow"))
                .when(header("serviceNickName").isEqualTo(BUSINESSNICK))
                    .to(routeMap.get("business"))
                .when(header("serviceNickName").isEqualTo(NETCALLNICK))
                    .to(routeMap.get("netcallservice"))
                .when(header("serviceNickName").isEqualTo(AUTHNICK))
                    .to(routeMap.get("EnterpriseInfoService"))
                .when(header("serviceNickName").isEqualTo(UPDATENICK))
                    .to(routeMap.get("NetCallUpdateService"))
               
.when(header("serviceNickName").isEqualTo("LoopbackDetection"))
                    .bean(new LoopbackDetectionEndpoint())
                .when(header("serviceNickName").isEqualTo("SetTracing"))
                    .beanRef("mobileRouteBuilder", "setTracing")
            .endChoice()
            
        .end();

        from("servlet:///?matchOnUriPrefix=true&bridgeEndpoint=true")
            .process(new ServletAdapterProcessor())
            .choice()
                .when(header("serviceNickName").isEqualTo(AUTHNICK))
                    .process(new SplitProcessor())
                    .choice()
                       
.when(header("EnterpriseInfoServiceRoute").isEqualTo("getauthusers"))
                            .to(routeMap.get("EnterpriseInfoService"))
                            .bean(new GetNCInfoEndpoint())
                       
.when(header("EnterpriseInfoServiceRoute").isEqualTo("authdevices"))
                            .process(new IfCanAuthProcessor())
                            .choice()
                                .when(header("CanAuth").isEqualTo("true"))
                                   
.to(routeMap.get("EnterpriseInfoService"))
                            .endChoice()
                       
.when(header("EnterpriseInfoServiceRoute").isEqualTo("other"))
                            .to(routeMap.get("EnterpriseInfoService"))
                    .endChoice()
                .when(header("serviceNickName").isEqualTo(PRODUCTNICK))
                    .to(routeMap.get("i6p"))
                .when(header("serviceNickName").isEqualTo("properties"))
                    .bean(new PropertyEndpoint())
            .endChoice()
        .end();
    }
}

---------------------------------------------------

And this is deployed in the Tomcat.

And we find that it maybe an issue of netty:
http://blog.csdn.net/haoel/article/details/2224055



--
View this message in context: 
http://camel.465427.n5.nabble.com/Why-so-many-port-used-when-I-use-camel-netty4-http-tp5765433p5765797.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to