diff --git a/jaas/pom.xml b/jaas/pom.xml
index 8e5072e..167b41e 100644
--- a/jaas/pom.xml
+++ b/jaas/pom.xml
@@ -87,6 +87,10 @@
                         <Bundle-Activator>
                             org.apache.felix.jaas.internal.Activator
                         </Bundle-Activator>
+                        <Import-Package>
+                          javax.servlet.*;resolution:=optional,
+                          *
+                        </Import-Package>
                         <_removeheaders>
                             Embed-Dependency,Private-Package,Include-Resource
                         </_removeheaders>
diff --git a/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java b/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
index 71d43d3..cca5ff2 100644
--- a/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
+++ b/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
@@ -21,6 +21,7 @@
 
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
+import org.osgi.service.log.LogService;
 
 public class Activator implements BundleActivator
 {
@@ -38,7 +39,7 @@
         loginModuleCreator = new BundleLoginModuleCreator(context, logger);
         jaasConfigFactory = new JaasConfigFactory(context, loginModuleCreator, logger);
         configSpi = new ConfigSpiOsgi(context, logger);
-        webConsolePlugin = new JaasWebConsolePlugin(context, configSpi,loginModuleCreator);
+        registerWebConsolePlugin(context);
 
         logger.open();
         loginModuleCreator.open();
@@ -63,4 +64,14 @@
             logger.close();
         }
     }
+
+    private void registerWebConsolePlugin(BundleContext context){
+        try{
+            webConsolePlugin = new JaasWebConsolePlugin(context, configSpi,loginModuleCreator);
+        }catch(NoClassDefFoundError t){
+            //Servlet API is not present. This is an optional requirement
+            logger.log(LogService.LOG_INFO,"HTTP support not found. JAAS WebConsole Plugin would not be registered");
+        }
+    }
+
 }
