rebase
diff --git a/meecrowave-core/pom.xml b/meecrowave-core/pom.xml
index 414654d..a05649a 100644
--- a/meecrowave-core/pom.xml
+++ b/meecrowave-core/pom.xml
@@ -80,6 +80,11 @@
       <version>${openwebbeans.version}</version>
       <scope>provided</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.openwebbeans</groupId>
+      <artifactId>openwebbeans-spi</artifactId>
+      <version>${openwebbeans.version}</version>
+    </dependency>
     <dependency> <!-- not that if a user adds owb-se this should get excluded -->
       <groupId>org.apache.openwebbeans</groupId>
       <artifactId>openwebbeans-web</artifactId>
diff --git a/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/OWBJarScanner.java b/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/OWBJarScanner.java
index 9cb96b3..3afcb8a 100644
--- a/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/OWBJarScanner.java
+++ b/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/OWBJarScanner.java
@@ -27,6 +27,7 @@
 import org.apache.tomcat.util.scan.JarFactory;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.corespi.scanner.xbean.CdiArchive;
+import org.apache.webbeans.corespi.scanner.xbean.OwbAnnotationFinder;
 import org.apache.webbeans.web.scanner.WebScannerService;
 import org.apache.xbean.finder.util.Files;
 
@@ -43,7 +44,12 @@
     public void scan(final JarScanType jarScanType, final ServletContext servletContext, final JarScannerCallback callback) {
         switch (jarScanType) {
             case PLUGGABILITY:
-                CdiArchive.class.cast(WebScannerService.class.cast(WebBeansContext.getInstance().getScannerService()).getFinder().getArchive())
+                final WebBeansContext owb = WebBeansContext.getInstance();
+                final OwbAnnotationFinder finder = WebScannerService.class.cast(owb.getScannerService()).getFinder();
+                if (finder == null) {
+                    return;
+                }
+                CdiArchive.class.cast(finder.getArchive())
                         .classesByUrl().keySet().stream()
                         .filter(u -> !"jar:file://!/".equals(u)) // not a fake in memory url
                         .forEach(u -> {
diff --git a/meecrowave-core/src/test/java/org/apache/meecrowave/MeecrowaveTest.java b/meecrowave-core/src/test/java/org/apache/meecrowave/MeecrowaveTest.java
index 391887b..f7cd553 100644
--- a/meecrowave-core/src/test/java/org/apache/meecrowave/MeecrowaveTest.java
+++ b/meecrowave-core/src/test/java/org/apache/meecrowave/MeecrowaveTest.java
@@ -58,6 +58,15 @@
 
 public class MeecrowaveTest {
     @Test
+    public void noTomcatScanning() {
+        try (final Meecrowave meecrowave = new Meecrowave(
+                new Meecrowave.Builder().tomcatScanning(false).randomHttpPort())
+                .bake()) {
+            // ok it started, before the fix it was failing due to a NPE
+        }
+    }
+
+    @Test
     public void fastStartupSessionId() {
         try (final Meecrowave meecrowave = new Meecrowave(new Meecrowave.Builder().randomHttpPort())
                 .start().deployClasspath()) {
diff --git a/pom.xml b/pom.xml
index e9c9974..4a33e94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,6 +53,8 @@
     <junit.version>4.13.1</junit.version>
     <tomcat.version>9.0.39</tomcat.version>
     <openwebbeans.version>2.0.19</openwebbeans.version>
+    <cxf.version>3.4.0</cxf.version>
+    <openwebbeans.version>2.0.19</openwebbeans.version>
     <cxf.version>3.4.1-SNAPSHOT</cxf.version>
     <johnzon.version>1.2.8</johnzon.version>
     <log4j2.version>2.13.3</log4j2.version>
@@ -235,5 +237,9 @@
       </snapshots>
     </repository>
 -->
+    <repository>
+      <id>owb</id>
+      <url>https://repository.apache.org/content/repositories/orgapacheopenwebbeans-1065/</url>
+    </repository>
   </repositories>
 </project>