Hi

Could it be that the Http Service API exists twice in your framework ? And thus 
your sample bundle and the Web Console and bridge bundles use different API 
wirings ?

You can cross check in the web console to which bundle a specific package is 
wired by looking at the details of a bundle and checking the imports (which 
contains the wire sources)

Regards
Felix

Am 14.03.2013 um 14:35 schrieb Stephan Schröder:

>> Can you verify the HttpService is available at all in the framework ?
>> (You might try to access the web console)
> The web console seems to be available. Requesting 
> "http://localhost:8080/system/console/bundles"; leads to:
> 'A username and password are being requested by http://localhost:8080. The 
> site says: "OSGi Management Console"'
> So i assume the HttpService is available.
> 
> i rewrote the EmbeddedServletActivator to use a ServiceTracker
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>    @Override
>    public void start(BundleContext context) throws Exception
>    {
>        httpServiceTracker = new ServiceTracker(context, 
> HttpService.class.getName(), null);
>        httpServiceTracker.open();
> 
>        System.out.println("Looking for HttpService");
>        final HttpService httpService = 
> (HttpService)httpServiceTracker.getService();
> 
>        if(httpService!=null) {
>            System.out.println("Found HttpSerice");
>            httpService.registerServlet(ALIAS, new HelloWorldServlet(), null, 
> null);
>            System.out.println("registered "+ALIAS+" with HttpService");
>        }else{
>            System.out.println("httpServiceTracker.getService() returned 
> null");
>        }
>    }
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> which lead to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
> Starting bundle [com.mobenga.HelloWorldServletEmbedded]
> Looking for HttpService
> httpServiceTracker.getService() returned null
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> so no change there.
> 
> /Stephan
> 
> 
> Gesendet: Donnerstag, 14. März 2013 um 13:46 Uhr
> Von: "Felix Meschberger" <[email protected]>
> An: "[email protected]" <[email protected]>
> Betreff: Re: No HttpService available
> Hi
> 
> Can you verify the HttpService is available at all in the framework ? (You 
> might try to access the web console)
> 
> If not, you might have an issue to not properly setup the Http Service 
> bridge: This requires wiring from the servlet which is actually deployed in 
> the servlet container. See [1] and the linked examples for details.
> 
> Regards
> Felix
> 
> [1] 
> http://felix.apache.org/documentation/subprojects/apache-felix-http-service.html#using-the-servlet-bridge
> 
> Am 14.03.2013 um 12:50 schrieb Stephan Schröder:
> 
>> Hi,
>> 
>> i want to write a HelloWorld-Servlet using Felixes HttpServie.
>> The setup is to embedd Felix and the HelloWorldServlet in a war-file and 
>> deploy this on Tomcat6.
>> 
>> The BundleActivator for the HelloWorldServletBundle checks whether a 
>> HttpServie is available a prints out an error message if that's not the case:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>> 
>> @Override
>> public void start(BundleContext context) throws Exception
>> {
>> ServiceReference sRef = 
>> context.getServiceReference(HttpService.class.getName());
>> if (sRef != null)
>> {
>> HttpService service = (HttpService) context.getService(sRef);
>> service.registerServlet(ALIAS, new HelloWorldServlet(), null, null);
>> }else{
>> System.out.println("no HttpService found to register Servlet for "+ALIAS);
>> }
>> }
>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>> 
>> and sadly this is exectly what happens when deploying the war-file on 
>> Tomcat6:
>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>> Connected to server
>> [2013-03-14 12:34:42,775] Artifact felix-bridge:war exploded: Artifact is 
>> being deployed, please wait...
>> starting OSGi
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.http.bridge-2.2.0.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.gogo.runtime_0.10.0.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.webconsole-3.1.8.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.http.base-2.2.0.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.bundlerepository-1.6.6.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.gogo.shell_0.10.0.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.http.api-2.2.0.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/systemBundles/org.apache.felix.gogo.command_0.12.0.jar]
>> Installing bundle 
>> [jndi:/localhost/WEB-INF/applicationBundles/HelloWorldServletEmbedded-1.0-SNAPSHOT.jar]
>> Starting bundle [org.apache.felix.http.bridge]
>> [INFO] Started bridged http service
>> Starting bundle [org.apache.felix.gogo.runtime]
>> Starting bundle [org.apache.felix.webconsole]
>> Starting bundle [org.apache.felix.http.base]
>> Starting bundle [org.apache.felix.bundlerepository]
>> Starting bundle [org.apache.felix.gogo.shell]
>> Starting bundle [org.apache.felix.http.api]
>> Starting bundle [org.apache.felix.gogo.command]
>> Starting bundle [com.mobenga.HelloWorldServletEmbedded]
>> no HttpService found to register Servlet for /hello <---no HttpService!
>> OSGi startet
>> [2013-03-14 12:34:43,176] Artifact felix-bridge:war exploded: Artifact is 
>> deployed successfully
>> ____________________________
>> Welcome to Apache Felix Gogo
>> 
>> g! Mar 14, 2013 12:34:52 PM org.apache.catalina.startup.HostConfig 
>> deployDirectory
>> INFO: Deploying web application directory manager
>> lb
>> START LEVEL 1
>> ID|State |Level|Name
>> 0|Active | 0|System Bundle (4.0.2)
>> 1|Active | 1|Apache Felix Http Bridge (2.2.0)
>> 2|Active | 1|Apache Felix Gogo Runtime (0.10.0)
>> 3|Active | 1|Apache Felix Web Management Console (3.1.8)
>> 4|Active | 1|Apache Felix Http Base (2.2.0)
>> 5|Active | 1|Apache Felix Bundle Repository (1.6.6)
>> 6|Active | 1|Apache Felix Gogo Shell (0.10.0)
>> 7|Active | 1|Apache Felix Http Api (2.2.0)
>> 8|Active | 1|Apache Felix Gogo Command (0.12.0)
>> 9|Active | 1|HelloWorldServletEmbedded (1.0.0.SNAPSHOT)
>> g!
>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>> 
>> Because all bundles are active i assume i forgot some needed bundle or 
>> configuration?
>> (I assume i don't need an embedded Jetty because this runs on top of 
>> Tomcat!?)
>> 
>> If you need more information here is the whole maven project as a zip:
>> https://docs.google.com/file/d/0BwYlZDH_xJugamxJQ2QzaWJULVU/edit?usp=sharing[https://docs.google.com/file/d/0BwYlZDH_xJugamxJQ2QzaWJULVU/edit?usp=sharing]
>> 
>> Regards,
>> Stephan
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
> 
> 
> --
> Felix Meschberger | Principal Scientist | Adobe
> 
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


--
Felix Meschberger | Principal Scientist | Adobe








---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to