diff --git a/peppol-evidence/pom.xml b/peppol-evidence/pom.xml
index 07dd1c9b..a716169c 100644
--- a/peppol-evidence/pom.xml
+++ b/peppol-evidence/pom.xml
@@ -89,8 +89,8 @@
- 2.3.3
- 2.3.3
+ 4.0.2
+ 4.0.0
@@ -134,9 +134,9 @@
- org.jvnet.jaxb2.maven2
- maven-jaxb2-plugin
- 0.14.0
+ org.jvnet.jaxb
+ jaxb-maven-plugin
+ 4.0.8
@@ -155,18 +155,6 @@
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
- 2.3.3
-
-
- com.sun.xml.bind
- jaxb-impl
- 2.3.3
-
-
diff --git a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceReader.java b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceReader.java
index 8ce6dc3c..0b134a89 100644
--- a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceReader.java
+++ b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceReader.java
@@ -30,9 +30,9 @@
import network.oxalis.vefa.peppol.evidence.jaxb.rem.REMEvidenceType;
import org.w3c.dom.Node;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
diff --git a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceTypeInstance.java b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceTypeInstance.java
index 7183405a..e304fcbe 100644
--- a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceTypeInstance.java
+++ b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceTypeInstance.java
@@ -21,7 +21,7 @@
import network.oxalis.vefa.peppol.evidence.jaxb.rem.REMEvidenceType;
-import javax.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBElement;
/**
* REMEvidenceType is an xml complex type, which must be instantiated, see
diff --git a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceWriter.java b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceWriter.java
index 6c90ba3e..515cb004 100644
--- a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceWriter.java
+++ b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/EvidenceWriter.java
@@ -28,7 +28,7 @@
import network.oxalis.vefa.peppol.evidence.jaxb.xmldsig.DigestMethodType;
import org.w3c.dom.Node;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.Marshaller;
import javax.xml.transform.Result;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.stream.StreamResult;
diff --git a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceBuilder.java b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceBuilder.java
index a701f013..37b0cc11 100644
--- a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceBuilder.java
+++ b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceBuilder.java
@@ -27,7 +27,7 @@
import network.oxalis.vefa.peppol.security.lang.PeppolSecurityException;
import org.w3c.dom.Document;
-import javax.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBElement;
import java.security.KeyStore;
import java.util.Date;
diff --git a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceTransformer.java b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceTransformer.java
index b5486da2..0a7b5992 100644
--- a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceTransformer.java
+++ b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemEvidenceTransformer.java
@@ -24,9 +24,9 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
diff --git a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemHelper.java b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemHelper.java
index 2231c7d7..a9f18fc8 100644
--- a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemHelper.java
+++ b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/RemHelper.java
@@ -31,10 +31,10 @@
import network.oxalis.vefa.peppol.evidence.jaxb.rem.REMEvidenceType;
import network.oxalis.vefa.peppol.security.xmldsig.DomUtils;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
+import jakarta.xml.bind.Unmarshaller;
import javax.xml.datatype.DatatypeConstants;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
diff --git a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/SignedRemEvidence.java b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/SignedRemEvidence.java
index 6063658d..ccff227e 100644
--- a/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/SignedRemEvidence.java
+++ b/peppol-evidence/src/main/java/network/oxalis/vefa/peppol/evidence/rem/SignedRemEvidence.java
@@ -32,7 +32,7 @@
import network.oxalis.vefa.peppol.evidence.jaxb.rem.REMEvidenceType;
import org.w3c.dom.Document;
-import javax.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBElement;
import java.util.Date;
import java.util.List;
diff --git a/peppol-evidence/src/main/xjb/evidence.xjb b/peppol-evidence/src/main/xjb/evidence.xjb
index d933e74e..87d5942e 100644
--- a/peppol-evidence/src/main/xjb/evidence.xjb
+++ b/peppol-evidence/src/main/xjb/evidence.xjb
@@ -1,7 +1,7 @@
-
+ jaxb:version="3.0">
diff --git a/peppol-evidence/src/test/java/network/oxalis/vefa/peppol/evidence/rem/ParseRemTest.java b/peppol-evidence/src/test/java/network/oxalis/vefa/peppol/evidence/rem/ParseRemTest.java
index 8f16f821..96ab4a95 100644
--- a/peppol-evidence/src/test/java/network/oxalis/vefa/peppol/evidence/rem/ParseRemTest.java
+++ b/peppol-evidence/src/test/java/network/oxalis/vefa/peppol/evidence/rem/ParseRemTest.java
@@ -22,9 +22,9 @@
import network.oxalis.vefa.peppol.evidence.jaxb.rem.REMEvidenceType;
import org.testng.annotations.Test;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.Unmarshaller;
import java.io.InputStream;
import static org.testng.Assert.assertEquals;
diff --git a/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201407Reader.java b/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201407Reader.java
index d56297a9..b575868b 100644
--- a/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201407Reader.java
+++ b/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201407Reader.java
@@ -39,10 +39,10 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
import javax.xml.transform.dom.DOMSource;
diff --git a/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201605Reader.java b/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201605Reader.java
index 7606e320..863f747f 100644
--- a/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201605Reader.java
+++ b/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/Bdxr201605Reader.java
@@ -39,10 +39,10 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
import javax.xml.transform.dom.DOMSource;
diff --git a/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/BusdoxReader.java b/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/BusdoxReader.java
index c79ff8f8..4c217a94 100644
--- a/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/BusdoxReader.java
+++ b/peppol-lookup/src/main/java/network/oxalis/vefa/peppol/lookup/reader/BusdoxReader.java
@@ -41,10 +41,10 @@
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
import javax.xml.transform.dom.DOMSource;
diff --git a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/PublisherService.java b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/PublisherService.java
index 99325809..1fa28f35 100644
--- a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/PublisherService.java
+++ b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/PublisherService.java
@@ -31,8 +31,8 @@
import org.w3c.dom.Document;
import javax.servlet.http.HttpServlet;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
import java.io.OutputStream;
import java.net.URI;
diff --git a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/api/PublisherSyntax.java b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/api/PublisherSyntax.java
index b41c91f3..03f8cb5e 100644
--- a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/api/PublisherSyntax.java
+++ b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/api/PublisherSyntax.java
@@ -22,9 +22,9 @@
import network.oxalis.vefa.peppol.publisher.model.PublisherServiceMetadata;
import network.oxalis.vefa.peppol.publisher.model.ServiceGroup;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
import java.net.URI;
/**
diff --git a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServlet.java b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServlet.java
index dc7d1ce7..cf8ab3cf 100644
--- a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServlet.java
+++ b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServlet.java
@@ -31,7 +31,7 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import java.io.IOException;
import java.net.URI;
import java.util.regex.Matcher;
diff --git a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/Bdxr201605PublisherSyntax.java b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/Bdxr201605PublisherSyntax.java
index 65e5b46c..2aa88556 100644
--- a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/Bdxr201605PublisherSyntax.java
+++ b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/Bdxr201605PublisherSyntax.java
@@ -27,10 +27,10 @@
import network.oxalis.vefa.peppol.publisher.model.ServiceGroup;
import network.oxalis.peppol.bdx.jaxb.smp._2016._05.*;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
diff --git a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/BusdoxPublisherSyntax.java b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/BusdoxPublisherSyntax.java
index ae357165..cf54ab80 100644
--- a/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/BusdoxPublisherSyntax.java
+++ b/peppol-publisher/src/main/java/network/oxalis/vefa/peppol/publisher/syntax/BusdoxPublisherSyntax.java
@@ -35,10 +35,10 @@
import network.oxalis.peppol.busdox.jaxb.identifiers.ProcessIdentifierType;
import network.oxalis.peppol.busdox.jaxb.smp.*;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
diff --git a/peppol-publisher/src/test/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServletTest.java b/peppol-publisher/src/test/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServletTest.java
index 176552d6..5f0839df 100644
--- a/peppol-publisher/src/test/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServletTest.java
+++ b/peppol-publisher/src/test/java/network/oxalis/vefa/peppol/publisher/servlet/PublisherServletTest.java
@@ -10,7 +10,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
import java.io.OutputStream;
import java.net.URI;
diff --git a/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhHelper.java b/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhHelper.java
index 6812609c..f30826f5 100644
--- a/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhHelper.java
+++ b/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhHelper.java
@@ -24,7 +24,7 @@
import network.oxalis.vefa.peppol.common.model.*;
import network.oxalis.vefa.peppol.common.util.ExceptionUtil;
-import javax.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBContext;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.stream.XMLInputFactory;
diff --git a/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhReader.java b/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhReader.java
index a48867ba..c6013f14 100644
--- a/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhReader.java
+++ b/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhReader.java
@@ -26,7 +26,7 @@
import network.oxalis.vefa.peppol.common.model.*;
import network.oxalis.vefa.peppol.sbdh.lang.SbdhException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.Unmarshaller;
import javax.xml.stream.XMLStreamReader;
import java.io.InputStream;
diff --git a/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhWriter.java b/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhWriter.java
index 99f79019..53e7ad41 100644
--- a/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhWriter.java
+++ b/peppol-sbdh/src/main/java/network/oxalis/vefa/peppol/sbdh/SbdhWriter.java
@@ -25,7 +25,7 @@
import network.oxalis.vefa.peppol.common.model.Header;
import network.oxalis.vefa.peppol.sbdh.lang.SbdhException;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.Marshaller;
import javax.xml.stream.XMLStreamWriter;
import java.io.OutputStream;
import java.util.ArrayList;
diff --git a/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/Sample.java b/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/Sample.java
index 73416c49..fe1b3185 100644
--- a/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/Sample.java
+++ b/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/Sample.java
@@ -19,10 +19,10 @@
package network.oxalis.vefa.peppol.security.xmldsig;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
/**
* @author steinar
diff --git a/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/XmldsigTest.java b/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/XmldsigTest.java
index 27d6cbfe..4f84ae01 100644
--- a/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/XmldsigTest.java
+++ b/peppol-security/src/test/java/network/oxalis/vefa/peppol/security/xmldsig/XmldsigTest.java
@@ -26,8 +26,8 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.Marshaller;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.stream.StreamResult;
import java.io.ByteArrayInputStream;
diff --git a/pom.xml b/pom.xml
index 57251f84..a9bc06f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,10 +101,10 @@
1.18.24
1.9
3.7.1-SNAPSHOT
- 4.2.0
- 2.2.0
+ 4.2.1-SNAPSHOT
+ 2.2.1-SNAPSHOT
4.5.13
- 3.6.0
+ 3.6.2
32.0.1-jre
1.4.2
1.4.7