Hi, I assume you deploy the camel router in OSGi container, if so we recommend to use http-osgi(which use http OSGi service provided by pax-web based on jetty) transport but not the standalone jetty transport for CXF endpoint.
Use relative address but not the absolute address can do the trick, so your CXF_RS_ENDPOINT_URI should be like cxfrs:///rest/... and you can use http://localhost:8181/cxf/rest… to access the endpoint by default. ------------- Freeman(Yue) Fang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: @Freeman小屋 On 2013-8-5, at 上午8:26, John D. Ament wrote: > Hi all > > I am deploying multiple REST services, uniquely bound to URIs but on the > same port. E.g.: > > final String CXF_RS_ENDPOINT_URI = "cxfrs://http://0.0.0.0:9580/rest/ > "+tenantId+"/?resourceClasses=com.mycompany.cloud.RestEndpoint"; > from(CXF_RS_ENDPOINT_URI).process(...); > > Now, I know I can just bind this and use a path param to process the > tenant, but we want to have unique objects used to process each tenant's > data (better data security). When these start up, the following exception > gets written to the log. It seems like jetty is trying to recreate an > existing port. > > 20:19:21,225 | WARN | rint Extender: 2 | MBeanContainer > | 120 - org.eclipse.jetty.util - 7.5.4.v20111024 | bean: > qtp15767905{8<=0<=0/254,-1}#STOPPED > javax.management.InstanceAlreadyExistsException: > org.eclipse.jetty.util.thread:type=queuedthreadpool,id=0 > at > com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)[:1.7.0_09] > at > com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:512)[:1.7.0_09] > at org.eclipse.jetty.jmx.MBeanContainer.addBean(MBeanContainer.java:300) > at org.eclipse.jetty.jmx.MBeanContainer.add(MBeanContainer.java:148) > at org.eclipse.jetty.util.component.Container.add(Container.java:206) > at org.eclipse.jetty.util.component.Container.update(Container.java:92) > at org.eclipse.jetty.server.Server.setThreadPool(Server.java:205) > at org.eclipse.jetty.server.Server.doStart(Server.java:257) > at > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) > at > org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:375) > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTTPDestination.java:172) > at > org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:49)[132:org.apache.cxf.cxf-api:2.6.8] > at > org.apache.cxf.binding.AbstractBaseBindingFactory.addListener(AbstractBaseBindingFactory.java:97)[132:org.apache.cxf.cxf-api:2.6.8] > at > org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:837)[134:org.apache.cxf.cxf-rt-bindings-soap:2.6.8] > at > org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:131)[132:org.apache.cxf.cxf-api:2.6.8] > at > org.apache.camel.component.cxf.CxfConsumer.doStart(CxfConsumer.java:249)[173:org.apache.camel.camel-cxf:2.10.6] > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:1788) > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:2084) > at > org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:2020) > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1948) > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1727) > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1608) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1475) > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1443) > at > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:162) > at > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:174) > at > org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(BlueprintCamelContext.java:132) > at > org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871) > at > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733) > at > org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3890) > at org.apache.felix.framework.Felix.access$000(Felix.java:79) > at org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:728) > at > org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107) > at org.apache.felix.framework.Felix.registerService(Felix.java:2979) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:313) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:287) > at > org.apache.camel.blueprint.BlueprintCamelContext.init(BlueprintCamelContext.java:91) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_09] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_09] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_09] > at java.lang.reflect.Method.invoke(Method.java:601)[:1.7.0_09] > at > org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:225)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:838)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:638)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:726)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:813)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:787)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:768)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:722)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:631)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:337)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:230)[10:org.apache.aries.blueprint:0.3.2] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_09] > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.7.0_09] > at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.7.0_09] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)[:1.7.0_09] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)[:1.7.0_09] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)[:1.7.0_09] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)[:1.7.0_09] > at java.lang.Thread.run(Thread.java:722)[:1.7.0_09] > 20:19:21,235 | WARN | rint Extender: 2 | MBeanContainer > | 120 - org.eclipse.jetty.util - 7.5.4.v20111024 | bean: > qtp15767905{8<=0<=0/254,-1}#STOPPED > javax.management.InstanceAlreadyExistsException: > org.eclipse.jetty.util.thread:type=queuedthreadpool,id=1 > at > com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)[:1.7.0_09] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)[:1.7.0_09] > at > com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:512)[:1.7.0_09] > at org.eclipse.jetty.jmx.MBeanContainer.addBean(MBeanContainer.java:300) > at org.eclipse.jetty.util.component.Container.addBean(Container.java:177) > at org.eclipse.jetty.server.Server.addBean(Server.java:502) > at org.eclipse.jetty.server.Server.setThreadPool(Server.java:208) > at org.eclipse.jetty.server.Server.doStart(Server.java:257) > at > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) > at > org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:375) > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTTPDestination.java:172) > at > org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:49)[132:org.apache.cxf.cxf-api:2.6.8] > at > org.apache.cxf.binding.AbstractBaseBindingFactory.addListener(AbstractBaseBindingFactory.java:97)[132:org.apache.cxf.cxf-api:2.6.8] > at > org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:837)[134:org.apache.cxf.cxf-rt-bindings-soap:2.6.8] > at > org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:131)[132:org.apache.cxf.cxf-api:2.6.8] > at > org.apache.camel.component.cxf.CxfConsumer.doStart(CxfConsumer.java:249)[173:org.apache.camel.camel-cxf:2.10.6] > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:1788) > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:2084) > at > org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:2020) > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1948) > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1727) > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1608) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1475) > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1443) > at > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:162) > at > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:174) > at > org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(BlueprintCamelContext.java:132) > at > org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871) > at > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733) > at > org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3890) > at org.apache.felix.framework.Felix.access$000(Felix.java:79) > at org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:728) > at > org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107) > at org.apache.felix.framework.Felix.registerService(Felix.java:2979) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:313) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:287) > at > org.apache.camel.blueprint.BlueprintCamelContext.init(BlueprintCamelContext.java:91) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_09] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_09] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_09] > at java.lang.reflect.Method.invoke(Method.java:601)[:1.7.0_09] > at > org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:225)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:838)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:638)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:726)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:813)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:787)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:768)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:722)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:631)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:337)[10:org.apache.aries.blueprint:0.3.2] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:230)[10:org.apache.aries.blueprint:0.3.2] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_09] > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.7.0_09] > at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.7.0_09] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)[:1.7.0_09] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)[:1.7.0_09] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)[:1.7.0_09] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)[:1.7.0_09] > at java.lang.Thread.run(Thread.java:722)[:1.7.0_09]
