Hi

I'm trying to run a simple servlet in Felix OSGi under Glassfish 3.1
application server

I've created 3 files:

   1. *BackAppsOSGiSevletPOC*
   2. *ServletServiceTracker *
   3. *ServletActivator*

The files are specified below.

Then, after I've installed the module, I've tried to activate the servlet
via the request *http://localhost:8080/simple* and got nothing.
I've tried to check and recheck what I've done and came out empty.

Can anyone tell me what I'm missing here?


*BackAppsOSGiSevletPOC *with the following code:

-------------------------------------------------------------------------------------------------------------------------------------------
*package com.krynnlance.backapps.client.servlet;*
*
*
*import java.io.IOException;*
*
*
*import javax.servlet.ServletException;*
*import javax.servlet.http.HttpServlet;*
*import javax.servlet.http.HttpServletRequest;*
*import javax.servlet.http.HttpServletResponse;*
*
*
*public class BackAppsOSGiSevletPOC extends HttpServlet*
*{*
*
*
* private static final long serialVersionUID = 1L;*
* *
* /***
* * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
response)*
* */*
* protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException *
* {*
* response.setContentType("text/plain");*
* response.getWriter().write("This is the Servlet module [GET request]...");
*
* }*
*
*
*}*
-------------------------------------------------------------------------------------------------------------------------------------------

*ServletServiceTracker* with the following code:

-------------------------------------------------------------------------------------------------------------------------------------------
*package com.krynnlance.backapps.client.servlet;*
*
*
*import org.osgi.framework.BundleContext;*
*import org.osgi.framework.ServiceReference;*
*import org.osgi.service.http.HttpService;*
*import org.osgi.util.tracker.ServiceTracker;*
*
*
*public class ServletServiceTracker extends ServiceTracker*
*{*
* *
* public ServletServiceTracker(BundleContext context)*
* {*
* /***
* * The service tracker will be registered for a specific class - *
* * in our case that's org.osgi.service.http.HttpService*
* */*
* super(context, HttpService.class.getName(), null);*
* }*
* *
* /***
* * When the service tracker is asked to return the HttpService, *
* * we can register our servlet*
* */*
* public Object addingService(ServiceReference reference)*
* {*
* HttpService httpService = (HttpService)super.addingService(reference);*
* *
* if(httpService == null)*
* {*
* return null;*
* }*
* *
* try*
* {*
* System.out.println("Registering servlet at /simple");*
* httpService.registerServlet("/simple", new BackAppsOSGiSevletPOC(), null,
null);*
* }*
* catch (Exception e) *
* {*
* e.printStackTrace();*
* }*
* *
* return httpService;*
* }*
* *
* /***
* * Likewise, we must make sure to unregister the servlet when the *
* * service tracker is asked to shut down the HttpService*
* */*
* public void removedService(ServiceReference reference, Object service)*
* {*
* HttpService httpService = (HttpService)service;*
* *
* System.out.println("Unregistering /simple");*
* httpService.unregister("/simple");*
* *
* super.removedService(reference, service);*
* }*
*}*
-------------------------------------------------------------------------------------------------------------------------------------------

*ServletActivator *with the following code:

-------------------------------------------------------------------------------------------------------------------------------------------
*package com.krynnlance.backapps.client.servlet;*
*
*
*import org.osgi.framework.BundleActivator;*
*import org.osgi.framework.BundleContext;*
*
*
*public class ServletActivator implements BundleActivator*
*{*
* private ServletServiceTracker servletServiceTracker;*
* *
* *
* @Override*
* public void start(BundleContext ctx) throws Exception *
* {*
* servletServiceTracker = new ServletServiceTracker(ctx);*
* servletServiceTracker.open();*
* }*
*
*
* @Override*
* public void stop(BundleContext ctx) throws Exception *
* {*
* servletServiceTracker.close();*
* servletServiceTracker = null;*
* }*
*
*
*}*

-------------------------------------------------------------------------------------------------------------------------------------------

And the *pom.xml* woth the following code:

-------------------------------------------------------------------------------------------------------------------------------------------
*<project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"*
* xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd";>*
* *
* <!-- PARENT POM.XML -->*
* <parent>*
*  <artifactId>backapps</artifactId>*
*  <groupId>com.krynnlance</groupId>*
*  <version>0.0.1</version>*
* </parent>*
* <modelVersion>4.0.0</modelVersion>*
* <groupId>com.krynnlance</groupId>*
* <artifactId>BackAppsOSGiSevletPOC</artifactId>*
* <packaging>bundle</packaging>*
* <version>1.0</version>*
* <name>BackApps OSGi Servlet Proof of Concept</name>*
* <description></description>*
* <organization>*
* <name>Krynnlance LTD</name>*
* <url>http://www.krynnlance.com</url>*
* </organization>*
* <dependencies>*
*
*
* <!--  JUNIT DEPENDENCY FOR TESTING -->*
* <dependency>*
* <groupId>junit</groupId>*
* <artifactId>junit</artifactId>*
* <version>3.8.2</version>*
* <scope>test</scope>*
* </dependency>*
* *
* <!-- Logging -->*
* <!--<dependency>*
*    <groupId>log4j</groupId>*
*    <artifactId>log4j</artifactId>*
*    <version>1.2.16</version>*
* </dependency>-->*
* *
* <!-- This JAR suppose to be in the war package -->*
* <!-- BackApps Beans Dependencies -->*
*    <dependency>*
* <groupId>com.krynnlance.backapps.common</groupId>*
* <artifactId>BackAppsCommon</artifactId>*
* <version>1.0</version>*
* </dependency>*
*    *
* <!-- SERVLET -->*
* <dependency>*
*  <groupId>org.glassfish</groupId>*
*  <artifactId>javax.servlet</artifactId>*
*  <version>3.1</version>*
* </dependency>*
* *
* <!-- OSGi modules dependencies -->*
* *
* <dependency>*
*    <groupId>org.apache.felix</groupId>*
*    <artifactId>felix</artifactId>*
*    <version>3.2.2</version>*
* </dependency>*
* *
* <!-- HTTP SERVICE -->*
* <dependency>*
*  <groupId>org.apache.felix</groupId>*
*  <artifactId>org.apache.felix.http.api</artifactId>*
*  <version>2.0.4</version>*
* </dependency>*
* <dependency>*
*  <groupId>org.apache.felix</groupId>*
*  <artifactId>org.apache.felix.http.base</artifactId>*
*  <version>2.0.4</version>*
* </dependency>*
* <dependency>*
*  <groupId>org.apache.felix</groupId>*
*  <artifactId>org.apache.felix.http.bridge</artifactId>*
*  <version>2.0.4</version>*
* </dependency>*
* <dependency>*
*  <groupId>org.apache.felix</groupId>*
*  <artifactId>org.apache.felix.http.bundle</artifactId>*
*  <version>2.0.4</version>*
* </dependency>*
* <dependency>*
*  <groupId>org.apache.felix</groupId>*
*  <artifactId>org.apache.felix.http.jetty</artifactId>*
*  <version>2.0.4</version>*
* </dependency>*
* <dependency>*
*  <groupId>org.apache.felix</groupId>*
*  <artifactId>org.apache.felix.http.proxy</artifactId>*
*  <version>2.0.4</version>*
* </dependency>*
* <dependency>*
*  <groupId>org.apache.felix</groupId>*
*  <artifactId>org.apache.felix.http.whiteboard</artifactId>*
*  <version>2.0.4</version>*
* </dependency>*
* <!-- END OF HTTP SERVICE -->*
* *
* </dependencies>*
* <build>*
* <resources>*
* <resource>*
* <filtering>false</filtering>*
* <directory>src/main/resources</directory>*
* </resource>*
* <resource>*
* <filtering>false</filtering>*
* <directory>src/main/java</directory>*
* <includes>*
* <include>**</include>*
* </includes>*
* <excludes>*
* <exclude>**/*.java</exclude>*
* </excludes>*
* </resource>*
* </resources>*
* <testResources>*
* <testResource>*
* <filtering>false</filtering>*
* <directory>src/test/java</directory>*
* <includes>*
* <include>**</include>*
* </includes>*
* <excludes>*
* <exclude>**/*.java</exclude>*
* </excludes>*
* </testResource>*
* </testResources>*
* <plugins>*
* <plugin>*
* <inherited>true</inherited>*
* <groupId>org.apache.maven.plugins</groupId>*
* <artifactId>maven-compiler-plugin</artifactId>*
* <configuration>*
* <source>1.5</source>*
* <target>1.5</target>*
* <optimize>true</optimize>*
* <debug>true</debug>*
* </configuration>*
* </plugin>*
* <plugin>*
* <groupId>org.apache.felix</groupId>*
* <artifactId>maven-bundle-plugin</artifactId>*
* <extensions>true</extensions>*
* <configuration>*
*  <instructions>*
*
<!--<Export-Package>com.krynnlance.backapps.common.logging</Export-Package>-->
*
*
<Bundle-Activator>com.krynnlance.backapps.client.servlet.ServletActivator</Bundle-Activator>
*
*  </instructions>*
* </configuration>*
*  </plugin>*
* <plugin>*
* <groupId>org.mortbay.jetty</groupId>*
* <artifactId>maven-jetty-plugin</artifactId>*
* </plugin> *
* </plugins>*
* </build>*
* <properties>*
* <jetty.version>6.1.4</jetty.version>*
* </properties>*
* </project>*
-------------------------------------------------------------------------------------------------------------------------------------------

-- 
Regards

Shai Amar

Technologies manager, Founder
Krynnlance
www.krynnlance.com
www.backapps.com

Reply via email to