Hi Chris

I can reproduce the error[1] and the patch is on the way.

[1]https://issues.apache.org/jira/browse/CAMEL-5087

Willem

On Wed Mar 14 10:27:34 2012, Chris Geer wrote:
We are using Camel 2.8.3 with ServiceMix 4.4.1. The consumer is a webpage
using the jquery comet library. You are correct that I didn't publish all
my routes in the sample I provided, I just provided enough to show the
error.

I did some more experimenting and was able to start multiple cometd
endpoints, on different ports, when I put them in separate camel contexts.
The error only seems to happen when they are in the same context, which is
what I ultimately want.

Chris

On Tue, Mar 13, 2012 at 6:41 PM, Willem Jiang<[email protected]>wrote:

Hi,

Which version of Camel are you using ?
Do you deploy the Cometd producer and consumer at the same time ?
I guess you doesn't past all the routes those you have.



On Wed Mar 14 07:29:28 2012, Chris Geer wrote:

I have a need to run multiple CometD endpoints where I can selectively
dispatch messages to each one based on data in my flow (splitting via
different comet subscriptions isn't sufficient). My plan was to run each
endpoint on it's own port so they wouldn't overlap but as soon as I try
and
create a second endpoint I get the following error (this is the root
error).

Caused by: java.lang.**IllegalStateException: STARTED
at
org.eclipse.jetty.server.**handler.HandlerWrapper.**
setHandler(HandlerWrapper.**java:70)
at
org.eclipse.jetty.servlet.**ServletContextHandler.<init>(**
ServletContextHandler.java:**131)
at
org.eclipse.jetty.servlet.**ServletContextHandler.<init>(**
ServletContextHandler.java:99)
at
org.apache.camel.component.**cometd.CometdComponent.**
createServletForConnector(**CometdComponent.java:162)
at
org.apache.camel.component.**cometd.CometdComponent.**
connect(CometdComponent.java:**115)
at
org.apache.camel.component.**cometd.CometdEndpoint.connect(**
CometdEndpoint.java:67)
at
org.apache.camel.component.**cometd.CometdProducer.start(**
CometdProducer.java:48)
at org.apache.camel.util.**ServiceHelper.startService(**
ServiceHelper.java:56)
at org.apache.camel.impl.**ProducerCache.doGetProducer(**
ProducerCache.java:378)
... 98 more

I suspect it has to do with the fact the cometd component starts it's own
Jetty server and something about the Jetty servers isn't unique. Below is
the config I used to recreate the problem.

<?xml version="1.0" encoding="UTF-8"?>
<blueprint 
xmlns="http://www.osgi.org/**xmlns/blueprint/v1.0.0<http://www.osgi.org/xmlns/blueprint/v1.0.0>
"
            
xmlns:jaxws="http://cxf.**apache.org/blueprint/jaxws<http://cxf.apache.org/blueprint/jaxws>"
xmlns:cxf="
http://cxf.apache.org/**blueprint/core<http://cxf.apache.org/blueprint/core>
"
            
xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
"
            
xmlns:jaxrs="http://cxf.**apache.org/blueprint/jaxrs<http://cxf.apache.org/blueprint/jaxrs>
"
            xmlns:camelcxf="http://camel.**apache.org/schema/blueprint/**
cxf<http://camel.apache.org/schema/blueprint/cxf>"
            
xmlns:camel="http://camel.**apache.org/schema/blueprint<http://camel.apache.org/schema/blueprint>
"
            xsi:schemaLocation="
              
http://www.osgi.org/xmlns/**blueprint/v1.0.0<http://www.osgi.org/xmlns/blueprint/v1.0.0>
http://www.osgi.org/xmlns/**blueprint/v1.0.0/blueprint.xsd<http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd>
              
http://camel.apache.org/**schema/blueprint/cxf<http://camel.apache.org/schema/blueprint/cxf>
http://camel.apache.org/**schema/blueprint/cxf/camel-**cxf-2.8.3.xsd<http://camel.apache.org/schema/blueprint/cxf/camel-cxf-2.8.3.xsd>
              
http://camel.apache.org/**schema/blueprint<http://camel.apache.org/schema/blueprint>
http://camel.apache.org/**schema/blueprint/camel-**blueprint-2.8.3.xsd<http://camel.apache.org/schema/blueprint/camel-blueprint-2.8.3.xsd>
              
http://cxf.apache.org/**blueprint/jaxws<http://cxf.apache.org/blueprint/jaxws>
http://cxf.apache.org/schemas/**blueprint/jaxws.xsd<http://cxf.apache.org/schemas/blueprint/jaxws.xsd>
              
http://cxf.apache.org/**blueprint/core<http://cxf.apache.org/blueprint/core>
http://cxf.apache.org/schemas/**blueprint/core.xsd<http://cxf.apache.org/schemas/blueprint/core.xsd>
              
http://cxf.apache.org/**blueprint/jaxrs<http://cxf.apache.org/blueprint/jaxrs>
http://cxf.apache.org/schemas/**blueprint/jaxrs.xsd<http://cxf.apache.org/schemas/blueprint/jaxrs.xsd>
"
            default-activation="lazy">

     <camel:camelContext id="cometd-test-route">
         <camel:route>
             <camel:from uri="direct:start"/>
             <camel:filter>
                 <camel:simple>${in.headers.**ClientID} ==
5</camel:simple>
                 <camel:to uri="cometd://0.0.0.0:8082/**
events?baseResource=<http://0.0.0.0:8082/events?baseResource=>
."/>
             </camel:filter>
         </camel:route>

         <camel:route>
             <camel:from uri="direct:start"/>
             <camel:filter>
                 <camel:simple>${in.headers.**ClientID} ==
4</camel:simple>
                 <camel:to uri="cometd://0.0.0.0:8083/**
events?baseResource=<http://0.0.0.0:8083/events?baseResource=>
."/>
             </camel:filter>
         </camel:route>
     </camel:camelContext>
</blueprint>


If you comment out the second route it all works like a champ. Any help
would be appreciated.

Thanks,
Chris




--
Willem
------------------------------**----
FuseSource
Web: http://www.fusesource.com
Blog:    
http://willemjiang.blogspot.**com<http://willemjiang.blogspot.com>(English)
        http://jnn.javaeye.com (Chinese)
Twitter: willemjiang Weibo: willemjiang





--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang

--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang

Reply via email to