diff --git a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DefaultsWebBundleManifestTransformer.java b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DefaultsWebBundleManifestTransformer.java
index bcffc27..f2ddc45 100644
--- a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DefaultsWebBundleManifestTransformer.java
+++ b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DefaultsWebBundleManifestTransformer.java
@@ -55,6 +55,8 @@
         addImportInNecessary("javax.servlet.jsp.el", new Version("2.1"), manifest);
         addImportInNecessary("javax.servlet.jsp.tagext", new Version("2.1"), manifest);
         addImportInNecessary("javax.el", new Version("1.0"), manifest);
+        addImportInNecessary("javax.websocket", new Version("1.0"), manifest);
+        addImportInNecessary("javax.websocket.server", new Version("1.0"), manifest);
     }
 
     private void addImportInNecessary(String packageName, Version version, BundleManifest manifest) {
diff --git a/org.eclipse.gemini.web.test/src/test/resources/META-INF/test.config.properties b/org.eclipse.gemini.web.test/src/test/resources/META-INF/test.config.properties
index a9e28cf..d928c7a 100644
--- a/org.eclipse.gemini.web.test/src/test/resources/META-INF/test.config.properties
+++ b/org.eclipse.gemini.web.test/src/test/resources/META-INF/test.config.properties
@@ -16,6 +16,7 @@
 file:${ivy.cache}/repository/javax.servlet/javax.servlet/${javax.servlet}/javax.servlet-${javax.servlet}.jar@start,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/javax.xml.rpc/${javax.xml.rpc}/javax.xml.rpc-${javax.xml.rpc}.jar@start,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/javax.xml.soap/${javax.xml.soap}/javax.xml.soap-${javax.xml.soap}.jar@start,\
+file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/javax.websocket/${javax.websocket}/javax.websocket-${javax.websocket}.jar@start,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.catalina.ha/${org.apache.catalina.ha}/org.apache.catalina.ha-${org.apache.catalina.ha}.jar,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.catalina.tribes/${org.apache.catalina.tribes}/org.apache.catalina.tribes-${org.apache.catalina.tribes}.jar,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.catalina/${org.apache.catalina}/org.apache.catalina-${org.apache.catalina}.jar@start,\
@@ -24,6 +25,7 @@
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.jasper/${org.apache.jasper}/org.apache.jasper-${org.apache.jasper}.jar,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.tomcat.api/${org.apache.tomcat.api}/org.apache.tomcat.api-${org.apache.tomcat.api}.jar,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.tomcat.util/${org.apache.tomcat.util}/org.apache.tomcat.util-${org.apache.tomcat.util}.jar,\
+file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.tomcat.websocket/${org.apache.tomcat.websocket}/org.apache.tomcat.websocket-${org.apache.tomcat.websocket}.jar,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.eclipse.jdt.core.compiler.batch/${org.eclipse.jdt}/org.eclipse.jdt.core.compiler.batch-${org.eclipse.jdt}.jar,\
 file:${ivy.cache}/repository/org.eclipse.virgo.mirrored/org.apache.juli.extras/${org.apache.juli.extras}/org.apache.juli.extras-${org.apache.juli.extras}.jar@start,\
 file:${ivy.cache}/repository/org.apache.taglibs/com.springsource.org.apache.taglibs.standard/${org.apache.taglibs}/com.springsource.org.apache.taglibs.standard-${org.apache.taglibs}.jar,\
diff --git a/org.eclipse.gemini.web.tomcat/.classpath b/org.eclipse.gemini.web.tomcat/.classpath
index 6ad9300..5f1bbf9 100644
--- a/org.eclipse.gemini.web.tomcat/.classpath
+++ b/org.eclipse.gemini.web.tomcat/.classpath
@@ -35,6 +35,7 @@
 	<classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.coyote/7.0.53.v201406070630/org.apache.coyote-7.0.53.v201406070630.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.coyote/7.0.53.v201406070630/org.apache.coyote.source-7.0.53.v201406070630.jar"/>
 	<classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.tomcat.api/7.0.53.v201406060720/org.apache.tomcat.api-7.0.53.v201406060720.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.tomcat.api/7.0.53.v201406060720/org.apache.tomcat.api.source-7.0.53.v201406060720.jar"/>
 	<classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.tomcat.util/7.0.53.v201406070630/org.apache.tomcat.util-7.0.53.v201406070630.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.tomcat.util/7.0.53.v201406070630/org.apache.tomcat.util.source-7.0.53.v201406070630.jar"/>
+	<classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.tomcat.websocket/7.0.53.v201406070630/org.apache.tomcat.websocket-7.0.53.v201406070630.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.tomcat.websocket/7.0.53.v201406070630/org.apache.tomcat.websocket.source-7.0.53.v201406070630.jar"/>
 	<classpathentry kind="var" path="IVY_CACHE/javax.servlet/javax.servlet/3.0.0.v201103241009/javax.servlet-3.0.0.v201103241009.jar" sourcepath="/IVY_CACHE/javax.servlet/javax.servlet/3.0.0.v201103241009/javax.servlet-sources-3.0.0.v201103241009.jar"/>
 	<classpathentry kind="var" path="IVY_CACHE/org.easymock/com.springsource.org.easymock/2.3.0/com.springsource.org.easymock-2.3.0.jar" sourcepath="/IVY_CACHE/org.easymock/com.springsource.org.easymock/2.3.0/com.springsource.org.easymock-sources-2.3.0.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.gemini.web.core"/>
diff --git a/org.eclipse.gemini.web.tomcat/ivy.xml b/org.eclipse.gemini.web.tomcat/ivy.xml
index cdc4aec..2d0c203 100644
--- a/org.eclipse.gemini.web.tomcat/ivy.xml
+++ b/org.eclipse.gemini.web.tomcat/ivy.xml
@@ -42,6 +42,7 @@
             <dependency org="org.eclipse.virgo.mirrored" name="org.apache.juli.extras" rev="${org.apache.juli.extras}" conf="compile->runtime"/>
             <dependency org="org.eclipse.virgo.mirrored" name="org.apache.tomcat.api" rev="${org.apache.tomcat.api}" conf="compile->runtime"/>
             <dependency org="org.eclipse.virgo.mirrored" name="org.apache.tomcat.util" rev="${org.apache.tomcat.util}" conf="compile->runtime"/>
+            <dependency org="org.eclipse.virgo.mirrored" name="org.apache.tomcat.websocket" rev="${org.apache.tomcat.websocket}" conf="compile->runtime"/>
 
             <dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
             <dependency org="org.easymock" name="com.springsource.org.easymock" rev="${org.easymock}" conf="test->runtime"/>
diff --git a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/BundleDependenciesJarScanner.java b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/BundleDependenciesJarScanner.java
index 352daef..20e1b48 100644
--- a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/BundleDependenciesJarScanner.java
+++ b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/BundleDependenciesJarScanner.java
@@ -30,11 +30,13 @@
 
 import org.apache.tomcat.JarScanner;
 import org.apache.tomcat.JarScannerCallback;
+import org.apache.tomcat.websocket.server.WsSci;
 import org.eclipse.gemini.web.tomcat.internal.loading.BundleWebappClassLoader;
 import org.eclipse.gemini.web.tomcat.internal.support.BundleDependencyDeterminer;
 import org.eclipse.gemini.web.tomcat.internal.support.BundleFileResolver;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,13 +58,13 @@
     /**
      * By default the Bundle Dependencies Jar Scanner will exclude the bundles listed below from the scanning process as
      * they do not provide TLDs and web-fragment.xml files: org.eclipse.osgi, javax.servlet, javax.servlet.jsp,
-     * javax.el. The default behavior can be changed with property
+     * javax.el,javax.websocket. The default behavior can be changed with property
      * <code>org.eclipse.gemini.web.tomcat.scanner.skip.bundles</code>. The syntax is
      * <code>org.eclipse.gemini.web.tomcat.scanner.skip.bundles=&lt;bundle-symbolic-name&gt;,&lt;bundle-symbolic-name&gt;,...</code>
      */
     static final String SCANNER_SKIP_BUNDLES_PROPERTY_NAME = "org.eclipse.gemini.web.tomcat.scanner.skip.bundles";
 
-    private static final String SCANNER_SKIP_BUNDLES_PROPERTY_VALUE_DEFAULT = "org.eclipse.osgi,javax.servlet,javax.servlet.jsp,javax.el";
+    private static final String SCANNER_SKIP_BUNDLES_PROPERTY_VALUE_DEFAULT = "org.eclipse.osgi,javax.servlet,javax.servlet.jsp,javax.el,javax.websocket";
 
     private static final String JAR_URL_SUFFIX = "!/";
 
@@ -96,6 +98,11 @@
     private void scanDependentBundles(Bundle rootBundle, JarScannerCallback callback) {
         Set<Bundle> dependencies = this.bundleDependencyDeterminer.getDependencies(rootBundle);
 
+        Bundle apacheWebsocketBundle = FrameworkUtil.getBundle(WsSci.class);
+        if (apacheWebsocketBundle != null) {
+            dependencies.add(apacheWebsocketBundle);
+        }
+
         for (Bundle bundle : dependencies) {
             if (!this.skipBundles.contains(bundle.getSymbolicName())) {
                 scanBundle(bundle, callback);
