diff --git a/chemistry-opencmis-android/chemistry-opencmis-android-client/pom.xml b/chemistry-opencmis-android/chemistry-opencmis-android-client/pom.xml
index ba1b3f4..05d1b2b 100644
--- a/chemistry-opencmis-android/chemistry-opencmis-android-client/pom.xml
+++ b/chemistry-opencmis-android/chemistry-opencmis-android-client/pom.xml
@@ -50,6 +50,12 @@
             <version>${okhttp.version}</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>javax.activation</groupId>
+            <artifactId>activation</artifactId>
+            <version>1.1.1</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/chemistry-opencmis-commons/chemistry-opencmis-commons-api/pom.xml b/chemistry-opencmis-commons/chemistry-opencmis-commons-api/pom.xml
index 6a3f297..f10b05c 100644
--- a/chemistry-opencmis-commons/chemistry-opencmis-commons-api/pom.xml
+++ b/chemistry-opencmis-commons/chemistry-opencmis-commons-api/pom.xml
@@ -37,6 +37,14 @@
     <properties>
         <parentBasedir>../../</parentBasedir>
     </properties>
+    
+    <dependencies>
+        <dependency>
+            <groupId>javax.xml.ws</groupId>
+            <artifactId>jaxws-api</artifactId>
+            <version>2.2.12</version>
+        </dependency>
+    </dependencies>
 
     <build>
         <plugins>
diff --git a/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/pom.xml b/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/pom.xml
index 9f60e1b..079f29f 100644
--- a/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/pom.xml
+++ b/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/pom.xml
@@ -55,6 +55,16 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>javax.activation</groupId>
+            <artifactId>activation</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.main.javaee-api</groupId>
+            <artifactId>javax.jws</artifactId>
+            <version>3.1.2.2</version>
+        </dependency>
         <!-- Test -->
         <dependency>
             <groupId>org.apache.logging.log4j</groupId>
diff --git a/chemistry-opencmis-test/chemistry-opencmis-test-fit/pom.xml b/chemistry-opencmis-test/chemistry-opencmis-test-fit/pom.xml
index 2b68001..bb0a780 100644
--- a/chemistry-opencmis-test/chemistry-opencmis-test-fit/pom.xml
+++ b/chemistry-opencmis-test/chemistry-opencmis-test-fit/pom.xml
@@ -92,7 +92,7 @@
                     <reuseForks>true</reuseForks>
                     <forkCount>1</forkCount>
                     <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
-                    <argLine>-ea:org.apache.chemistry --add-modules=java.xml.ws,java.xml.bind --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED</argLine>
+                    <argLine>-ea:org.apache.chemistry</argLine>
                     <systemPropertyVariables>
                         <systemProperty>
                             <name>org.apache.chemistry.opencmis.session.repository.id</name>
diff --git a/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/tck/AbstractTckIT.java b/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/tck/AbstractTckIT.java
index 9f2ae06..db2bc1b 100644
--- a/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/tck/AbstractTckIT.java
+++ b/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/tck/AbstractTckIT.java
@@ -28,10 +28,14 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.catalina.Container;
+import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleEvent;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.LifecycleState;
+import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.chemistry.opencmis.commons.SessionParameter;
 import org.apache.chemistry.opencmis.commons.enums.BindingType;
@@ -45,6 +49,7 @@
 import org.apache.chemistry.opencmis.tck.impl.TestParameters;
 import org.apache.chemistry.opencmis.tck.report.TextReport;
 import org.apache.chemistry.opencmis.tck.runner.AbstractRunner;
+import org.apache.tomcat.util.scan.StandardJarScanner;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -133,7 +138,20 @@
         // Logger.getLogger("").setLevel(Level.INFO);
         System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
 
-        tomcat = new Tomcat();
+        tomcat = new Tomcat() {
+            @Override
+            public void start() throws LifecycleException {
+                for (org.apache.catalina.Service service : getServer().findServices()) {
+                    for (Container container : service.getContainer().findChildren()) {
+                        for (Container subContainer : container.findChildren()) {
+                            ((StandardJarScanner) ((Context) subContainer).getJarScanner()).setScanClassPath(false);
+                        }
+                    }
+                }
+                super.start();
+            }
+        };
+
         tomcat.setBaseDir(tomcateBaseDir.getAbsolutePath());
         tomcat.setPort(getPort());
         // tomcat.setSilent(true);
diff --git a/pom.xml b/pom.xml
index 1cc0122..3dfe30e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -158,7 +158,7 @@
         <slf4j.version>1.7.25</slf4j.version>
         <log4j.version>2.11.1</log4j.version>
         <apacheclient.version>4.2.6</apacheclient.version>
-        <cxf.version>3.2.6</cxf.version>
+        <cxf.version>3.3.0</cxf.version>
         <okhttp.version>3.11.0</okhttp.version>
     </properties>
 
@@ -174,9 +174,6 @@
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
                     <version>${surefire.version}</version>
-                    <configuration>
-                        <argLine>--add-modules java.xml.ws</argLine>
-                    </configuration>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
@@ -424,7 +421,7 @@
                         <configuration>
                             <rules>
                                 <requireJavaVersion>
-                                    <version>[10,)</version>
+                                    <version>[11,)</version>
                                 </requireJavaVersion>
                                 <requireMavenVersion>
                                     <version>[3.5,)</version>
