yep but in this case, we create a dependency between CamelHttpTransportServlet and Karaf bootsrap class.
This is not really important as I'm not sure that using camel + karaf or SMX4 embedded in a WAR is the best choice. It is better to create a classical WAR in this case containing camel/spring classes without osgi. Regards, Charles Moulliard Senior Enterprise Architect Apache Camel Committer ***************************** blog : http://cmoulliard.blogspot.com twitter : http://twitter.com/cmoulliard Linkedlin : http://www.linkedin.com/in/charlesmoulliard Apache Camel Group : http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm On Wed, Jan 6, 2010 at 3:25 AM, Willem Jiang <willem.ji...@gmail.com> wrote: > Hi Charles, > > I think if you can make sure the servlet is deployed before the camel > context started, the camel-servlet endpoint can get the access the > CamelHttpTransportServlet instance. > As the CamelHttpTransportServlet and Karaf are using the same classloader, > I think it should be OK for camel-servlet endpoint accessing the > CamelHttpTransportServlet instance. > > If you extends the CamelHttpTransportServlet and load the Karaf when the > Servlet start, maybe we can workaround the camelContext starting issue. > > Willem > > > Charles Moulliard wrote: > >> Hi, >> >> I have packaged my OSGI project including camel context in a WAR file. >> This >> WAR file contains Felix Karaf server which is started by the Tomcat Web >> Application Server though a bundle activator. >> >> My camel context uses camel-servlet endpoint to have access to servlet >> published by Tomcat >> >> <camel:route> >> <camel:from uri="servlet:///?matchOnUriPrefix=true" /> >> <camel:to uri="cxfbean:restFulService" /> >> </camel:route> >> >> Question : >> >> Can the camel-servlet endpoint (bundle started by karaf) retrieve the >> servlet org.apache.camel.component.servlet.CamelHttpTransportServlet if >> this >> one is created by Tomcat ? >> >> <web-app version="2.4" >> xmlns="http://java.sun.com/xml/ns/j2ee" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee >> >> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd >> "> >> >> <listener> >> >> <listener-class>org.apache.felix.karaf.web.WebAppListener</listener-class> >> </listener> >> >> <welcome-file-list> >> <welcome-file>index.jsp</welcome-file> >> </welcome-file-list> >> >> <servlet> >> <servlet-name>CamelServlet</servlet-name> >> <display-name>Camel Http Transport Servlet</display-name> >> >> >> <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class> >> </servlet> >> >> <servlet-mapping> >> <servlet-name>CamelServlet</servlet-name> >> <url-pattern>/services/*</url-pattern> >> </servlet-mapping> >> >> >> </web-app> >> >> >> I don't think so because classloading of osgi cannot see what tomcat >> loads. >> >> Regards, >> >> Charles Moulliard >> Senior Enterprise Architect >> Apache Camel Committer >> >> ***************************** >> blog : http://cmoulliard.blogspot.com >> twitter : http://twitter.com/cmoulliard >> Linkedlin : http://www.linkedin.com/in/charlesmoulliard >> >> Apache Camel Group : >> http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm >> >> > >