You mean to retrieve the bundleContext in our WebAppListener class after the
launching of Karaf ?

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:03 PM, Karl Pauls <[email protected]> wrote:

> Get the bundle context from the system bundle from the outside (inside
> the frameworkservice after the framework has been started) and
> register it there.
>
> regards,
>
> Karl
>
> On Wed, Jan 6, 2010 at 2:54 PM, Charles Moulliard <[email protected]>
> wrote:
> > In my case, the system bundles are already deployed into Apache Felix
> Karaf.
> > Karaf uses a different provisioning mechanism (based on feature file +
> pax
> > url mvn).
> >
> > So, it makes no sense to call ProvisionActivator from Karaf bootstrap.
> What
> > is the workaround ?
> >
> > 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 2:01 PM, Karl Pauls <[email protected]> wrote:
> >
> >> It gets added in:
> >>
> >>
> >>
> http://svn.apache.org/repos/asf/felix/trunk/http/samples/bridge/src/main/java/org/apache/felix/http/samples/bridge/ProvisionActivator.java
> >>
> >> which is passed to the framework in:
> >>
> >>
> >>
> http://svn.apache.org/repos/asf/felix/trunk/http/samples/bridge/src/main/java/org/apache/felix/http/samples/bridge/FrameworkService.java
> >>
> >> look for the createConfig method.
> >>
> >> regards,
> >>
> >> Karl
> >>
> >> On Wed, Jan 6, 2010 at 12:41 PM, Charles Moulliard <
> [email protected]>
> >> wrote:
> >> > My example is quite similar to the ServletListener of Bridge example
> but
> >> > uses Apache Felix Karaf
> >> >
> >> > <?xml version="1.0" encoding="UTF-8"?>
> >> > <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
> Application
> >> > 2.3//EN"
> >> >    "http://java.sun.com/dtd/web-app_2_3.dtd";>
> >> > <web-app>
> >> >
> >> >    <listener>
> >> >
> >> >
> >>
> <listener-class>org.apache.felix.http.samples.bridge.StartupListener</listener-class>
> >> >    </listener>
> >> >
> >> >    <servlet>
> >> >        <servlet-name>proxy</servlet-name>
> >> >
> >> >
> <servlet-class>org.apache.felix.http.proxy.ProxyServlet</servlet-class>
> >> >        <load-on-startup>1</load-on-startup>
> >> >    </servlet>
> >> >
> >> >    <servlet-mapping>
> >> >        <servlet-name>proxy</servlet-name>
> >> >        <url-pattern>/*</url-pattern>
> >> >    </servlet-mapping>
> >> >
> >> > </web-app>
> >> >
> >> > *WebAppListener class :*
> >> >
> >> > import java.io.File;
> >> >
> >> > import javax.servlet.ServletContextEvent;
> >> > import javax.servlet.ServletContextListener;
> >> >
> >> > import org.apache.commons.logging.Log;
> >> > import org.apache.commons.logging.LogFactory;
> >> > import org.apache.felix.karaf.main.Main;
> >> > import org.apache.felix.karaf.main.Bootstrap;
> >> >
> >> > public class WebAppListener implements ServletContextListener {
> >> >
> >> >    private static final transient Log LOG =
> >> > LogFactory.getLog(WebAppListener.class);
> >> >
> >> >    private Main main;
> >> >
> >> >    public void contextInitialized(ServletContextEvent sce) {
> >> >        try {
> >> >            LOG.info("contextInitialized");
> >> >            String root = new
> >> File(sce.getServletContext().getRealPath("/")
> >> > + "WEB-INF/karaf").getAbsolutePath();
> >> >            LOG.info("Root: " + root);
> >> >            System.setProperty("karaf.home", root);
> >> >            System.setProperty("karaf.base", root);
> >> >            System.setProperty("karaf.startLocalConsole", "false");
> >> >            System.setProperty("karaf.startRemoteShell", "true");
> >> >            main = Bootstrap.launch(new String[0]);
> >> >        } catch (Exception e) {
> >> >            main = null;
> >> >            LOG.error( e );
> >> >        }
> >> >    }
> >> >
> >> >    public void contextDestroyed(ServletContextEvent sce) {
> >> >        try {
> >> >            LOG.info("contextDestroyed");
> >> >            if (main != null) {
> >> >                main.destroy(false);
> >> >            }
> >> >        } catch (Exception e) {
> >> >            LOG.error( e );
> >> >        }
> >> >    }
> >> >
> >> > }
> >> >
> >> > The FrameWorkService class called by the StartupListener class of
> bridge
> >> > example starts Felix but I don't see that the BundleContext is added.
> >> > Question : Is the bundleContext created and added automatically by
> Felix
> >> > when started ?
> >> >
> >> > 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 12:32 PM, Karl Pauls <[email protected]>
> wrote:
> >> >
> >> >> Make sure you follow all the steps described in the link plus maybe
> >> >> look at the example:
> >> >> http://svn.apache.org/repos/asf/felix/trunk/http/samples/bridge/
> >> >>
> >> >> it sounds like you didn't do the servletlistener that starts the
> >> >> framework and sets the context.
> >> >>
> >> >> (the process is not super automated atm and involves a couple of
> steps
> >> >> so don't give up to easily :-)
> >> >>
> >> >> regards,
> >> >>
> >> >> Karl
> >> >>
> >> >> On Wed, Jan 6, 2010 at 12:17 PM, Charles Moulliard <
> >> [email protected]>
> >> >> wrote:
> >> >> > Many thanks.
> >> >> >
> >> >> > I test it with my example but Tomcat generates this error during
> >> >> > initialisation of the proxy bridge servlet -->
> >> >> >
> >> >> > javax.servlet.ServletException: Bundle context attribute
> >> >> > [org.osgi.framework.BundleContext] not set in servlet context
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.felix.http.proxy.ProxyServlet.getBundleContext(ProxyServlet.java:81)
> >> >> >    at
> >> >> org.apache.felix.http.proxy.ProxyServlet.doInit(ProxyServlet.java:50)
> >> >> >    at
> >> org.apache.felix.http.proxy.ProxyServlet.init(ProxyServlet.java:39)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> >> >> >    at
> >> >> >
> >> >>
> >>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
> >> >> >    at
> >> >> >
> >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> >> >> >    at java.lang.Thread.run(Thread.java:619)
> >> >> >
> >> >> > How the ProxyServlet retrieves such bundleContext ?
> >> >> >
> >> >> > 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 12:09 PM, Karl Pauls <[email protected]>
> >> wrote:
> >> >> >
> >> >> >> Yup:
> >> >> >>
> >> >> >>
> >> >> >>
> >> >>
> >>
> http://felix.apache.org/site/apache-felix-http-service.html#ApacheFelixHTTPService-UsingtheServletBridge
> >> >> >>
> >> >> >> regards,
> >> >> >>
> >> >> >> Karl
> >> >> >>
> >> >> >> On Wed, Jan 6, 2010 at 11:15 AM, Charles Moulliard <
> >> >> [email protected]>
> >> >> >> wrote:
> >> >> >> > Hi,
> >> >> >> >
> >> >> >> > Is there a servlet bridge available for Apache Felix like we
> have
> >> with
> >> >> >> > equinox -->
> >> >> http://www.eclipse.org/equinox/server/http_in_container.php?
> >> >> >> >
> >> >> >> > 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
> >> >> >> >
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> --
> >> >> >> Karl Pauls
> >> >> >> [email protected]
> >> >> >>
> >> >> >>
> ---------------------------------------------------------------------
> >> >> >> To unsubscribe, e-mail: [email protected]
> >> >> >> For additional commands, e-mail: [email protected]
> >> >> >>
> >> >> >>
> >> >> >
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Karl Pauls
> >> >> [email protected]
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: [email protected]
> >> >> For additional commands, e-mail: [email protected]
> >> >>
> >> >>
> >> >
> >>
> >>
> >>
> >> --
> >> Karl Pauls
> >> [email protected]
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
> >
>
>
>
> --
> Karl Pauls
> [email protected]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to