Thanks for your pointer Willem.  It worked with version 2.7.5.  May be we
could have this information available in wiki so that it saves someone
grief.  

I already wrote an implementation to have it work in 2.4.0.  Here is the
outline of the solution just in case it helps someone who couldn't upgrade.  

Basically I did not register servlet:/// route through the context listener
but manually through spring application context event.  This is called after
web application context is initialized.
 
Here is the registrar:

public class ServletComponentRegistrar implements
ApplicationListener<ContextRefreshedEvent>, CamelContextAware {
        
        CamelContext camelContext;

        public MyService() {
                super();
                System.out.println("Application context listener is created!");
        }

        public void service() throws Exception {
                if (camelContext != null) {
                        try {
                                camelContext.addRoutes(new 
ServletComponentRoute());
                        } catch (IllegalArgumentException e) {
                                System.out.println("Exception is expected. 
Servlet component is not
initialized yet.  Waiting for next refresh of spring container " +
e.getMessage());
                        }
                }
        }

        @Override
        public void onApplicationEvent(ContextRefreshedEvent event) throws
Exception {
                if (camelContext != null) {
                        try {
                                camelContext.addRoutes(new MyRoute());
                        } catch (IllegalArgumentException e) {
                                System.out.println("Exception is expected. 
Servlet component is not
initialized yet.  Waiting for next refresh of spring container " +
e.getMessage());
                        }
        }
}

--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-and-Tomcat-tp3386793p5568617.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to