camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "manoj.sahu" <mantu_s...@yahoo.com>
Subject Re: Camel and Tomcat
Date Thu, 15 Mar 2012 16:53:57 GMT
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.

Mime
View raw message