diff --git a/README.md b/README.md
index 7b6750b..fcc9c05 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@
 
 ## Prerequisites
 
-Java 8 (OpenJDK or Oracle JDK),
+Java 11 (OpenJDK or Oracle JDK),
 [Git](http://git-scm.com/),
 [Maven 3](https://maven.apache.org/).
 Further dependencies are resolved using Maven.
diff --git a/pom.xml b/pom.xml
index 61f6935..a2f7382 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,9 +9,9 @@
   <url>https://korap.ids-mannheim.de/</url>
   
   <properties>
-    <java.version>1.8</java.version>
-    <jetty.version>9.4.54.v20240208</jetty.version>
-    <jersey.version>2.35</jersey.version>
+    <java.version>17</java.version>
+    <jetty.version>11.0.12</jetty.version>
+    <jersey.version>3.0.4</jersey.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
   </properties>
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java b/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
index 5c27b85..6a5357e 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
@@ -1,7 +1,7 @@
 package de.ids_mannheim.korap.plkexport;
 
 import com.fasterxml.jackson.databind.JsonNode;
-import javax.ws.rs.core.Response.ResponseBuilder;
+import jakarta.ws.rs.core.Response.ResponseBuilder;
 import java.io.IOException;
 import java.io.Writer;
 import org.glassfish.jersey.media.sse.EventOutput;
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/JsonExporter.java b/src/main/java/de/ids_mannheim/korap/plkexport/JsonExporter.java
index ded4068..c4bb60b 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/JsonExporter.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/JsonExporter.java
@@ -1,6 +1,6 @@
 package de.ids_mannheim.korap.plkexport;
 
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MediaType;
 import com.fasterxml.jackson.databind.JsonNode;
 import java.io.IOException;
 import java.io.Writer;
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java b/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
index 95c2b2e..480f724 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
@@ -18,16 +18,18 @@
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.StreamingOutput;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.ResponseBuilder;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.StreamingOutput;
 
 import org.glassfish.jersey.media.sse.EventOutput;
 import org.glassfish.jersey.media.sse.OutboundEvent;
 
 import static de.ids_mannheim.korap.plkexport.Util.*;
 
+import org.tinylog.Logger;
+
 /**
  * Base class for collecting matches and header information
  * for exporters implementing the Exporter interface.
@@ -561,6 +563,7 @@
             this.evOut.write(eventBuilder.build());
         }
         catch (IOException e) {
+            Logger.error(e);
             return;
         };
     };
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java b/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java
index 3d6e3bc..b12c2fa 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java
@@ -14,6 +14,8 @@
 
 import org.tinylog.Logger;
 
+import jakarta.servlet.Servlet;
+
 /**
  * Server to provide the export web service
  */
@@ -49,7 +51,7 @@
 
 
         ServletContainer servletContainer = new ServletContainer();        
-        ServletHolder servletHolder = new ServletHolder(servletContainer);
+        ServletHolder servletHolder = new ServletHolder((Servlet) servletContainer);
         contextHandler.addServlet(servletHolder, "/*");
         
         servletHolder.setInitOrder(0);
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
index cad662b..093f802 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
@@ -12,25 +12,26 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.BadRequestException;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.UriBuilder;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.ResponseBuilder;
+import jakarta.ws.rs.core.Response.Status;
 
 import static org.apache.commons.io.FilenameUtils.getExtension;
 
@@ -40,8 +41,8 @@
 import org.glassfish.jersey.media.sse.OutboundEvent;
 import org.glassfish.jersey.media.sse.SseFeature;
 
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
 import org.glassfish.jersey.server.ContainerRequest;
 
 import static de.ids_mannheim.korap.plkexport.Util.*;
@@ -450,7 +451,7 @@
         if (eventOutput.isClosed())
             return Response.ok("EventSource closed").build();
 
-        new Thread(
+        Thread t = new Thread(
             new Runnable() {
 
                 @Override
@@ -500,7 +501,7 @@
                             eventBuilder.data("done");
                             eventOutput.write(eventBuilder.build());                        
                             eventOutput.close();
-                        }
+                        }   
 
                         catch (IOException ioClose) {
                             Logger.error(ioClose);
@@ -511,7 +512,9 @@
                     };
                     return;
                 }
-            }).start();      
+            });
+        t.start();      
+//        t.join();
 
         String origin = prop.getProperty("server.origin","*");
         if (servletReq != null) {
@@ -519,7 +522,7 @@
             origin = servletReq.getHeader("Origin");
         };
 
-        return Response.ok(eventOutput, SseFeature.SERVER_SENT_EVENTS_TYPE)
+        return Response.ok(eventOutput, String.valueOf(SseFeature.SERVER_SENT_EVENTS_TYPE))
             .header("Access-Control-Allow-Origin", origin)
             .header("Access-Control-Allow-Credentials", "true")
             .header("Vary","Origin")
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
index ca0154a..9118228 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
@@ -9,9 +9,13 @@
 
 import java.util.Properties;
 
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.core.Application;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 public class AssetTest extends JerseyTest {
     
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/CsvExporterTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/CsvExporterTest.java
index 01f9978..5b25c28 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/CsvExporterTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/CsvExporterTest.java
@@ -5,7 +5,7 @@
 import static org.junit.Assert.assertEquals;
 import org.junit.Test;
 
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
 
 public class CsvExporterTest {
     
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/JsonExporterTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/JsonExporterTest.java
index fb74a2f..6e21511 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/JsonExporterTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/JsonExporterTest.java
@@ -4,14 +4,18 @@
 import java.io.File;
 import java.io.BufferedReader;
 import java.io.FileReader;
-import javax.ws.rs.core.StreamingOutput;
+import java.io.InputStream;
+
+
+
+import jakarta.ws.rs.core.StreamingOutput;
 
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import org.junit.Test;
 
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
 
 public class JsonExporterTest {
 
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java
index 9d838fd..7945dae 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java
@@ -8,7 +8,7 @@
 
 import org.junit.Test;
 
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
 
 public class RtfExporterTest {
     
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/ServiceTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/ServiceTest.java
index ceb66e1..a24d5fc 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/ServiceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/ServiceTest.java
@@ -26,21 +26,23 @@
 import java.util.LinkedList;
 import java.util.Properties;
 
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.core.Application;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 // SSE testing
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientBuilder;
 import org.glassfish.jersey.media.sse.EventListener;
 import org.glassfish.jersey.media.sse.EventSource;
 import org.glassfish.jersey.media.sse.SseFeature;
 import java.util.concurrent.TimeUnit;
+import jakarta.ws.rs.client.WebTarget;
+import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
 import org.glassfish.jersey.server.ResourceConfig;
