diff --git a/appserver/appclient/client/acc-config/pom.xml b/appserver/appclient/client/acc-config/pom.xml
index eb3e1f8..00fbfdc 100755
--- a/appserver/appclient/client/acc-config/pom.xml
+++ b/appserver/appclient/client/acc-config/pom.xml
@@ -130,31 +130,77 @@
 
             <!-- Generates JAXB classes based on the ACC configuration file 
                 DTD. -->
+            <!--
+                XXX: no maven plugin for jakarta xml binding impl exists,
+                so we have to stick with Ant
+                and attach source root to the build ourselves...
+            -->
             <plugin>
-                <groupId>org.jvnet.jaxb2.maven2</groupId>
-                <artifactId>maven-jaxb2-plugin</artifactId>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <version>3.0.0</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>com.sun.xml.bind</groupId>
+                        <artifactId>jaxb-xjc</artifactId>
+                        <version>3.0.0-M2</version>
+                    </dependency>
+                </dependencies>
                 <executions>
                     <execution>
-                        <id>JAXB-gen-for-glassfish-acc</id>
+                        <id>xjc-gen-for-glassfish-acc</id>
+                        <phase>generate-sources</phase>
                         <goals>
-                            <goal>generate</goal> <!-- must be before compile -->
+                            <goal>run</goal>
                         </goals>
+                        <configuration>
+                            <target>
+                                <property name="dest" location="${project.build.directory}/generated-sources/xjc"/>
+                                <mkdir dir="${dest}"/>
+                                <!-- see https://github.com/eclipse-ee4j/jaxb-ri/issues/1436 -->
+                                <java classpathref="maven.plugin.classpath" fork="true"
+                                      classname="com.sun.tools.xjc.XJCFacade">
+                                    <jvmarg value="-DenableExternalEntityProcessing=true"/>
+                                    <arg value="-dtd"/>
+                                    <arg line="-d ${dest}"/>
+                                    <arg line="-p org.glassfish.appclient.client.acc.config"/>
+                                    <arg value="${project.basedir}/${extracted-dtd-directory}/${dtd-for-jaxb-compilation}"/>
+                                    <arg line="-b ${project.basedir}/src/main/resources/configBindings.xml"/>
+                                </java>
+
+                                <!--
+                                <taskdef name="xjc" classname="com.sun.tools.xjc.XJC2Task" classpathref="maven.plugin.classpath"/>
+                                <xjc destdir="${dest}" fork="true"
+                                     schema="${project.basedir}/${extracted-dtd-directory}/${dtd-for-jaxb-compilation}"
+                                     package="org.glassfish.appclient.client.acc.config">
+                                    <binding dir="${project.basedir}/src/main/resources" includes="configBindings.xml"/>
+                                    <arg value="-dtd"/>
+                                    <arg line="-classpath ${cp}"/>
+                                    <jvmarg value="-DenableExternalEntityProcessing=true"/>
+                                    <classpath path="${cp}"/>
+                                </xjc>-->
+                            </target>
+                        </configuration>
                     </execution>
                 </executions>
-                <configuration>
-                    <schemaLanguage>DTD</schemaLanguage>
-                    <schemaDirectory>${extracted-dtd-directory}</schemaDirectory>
-                    <generatePackage>org.glassfish.appclient.client.acc.config</generatePackage>
-                    <schemaIncludes>
-                        <include>${dtd-for-jaxb-compilation}</include>
-                    </schemaIncludes>
-                    <bindingDirectory>src/main/resources</bindingDirectory>
-                    <bindingIncludes>
-                        <include>configBindings.xml</include>
-                    </bindingIncludes>
-                </configuration>
             </plugin>
-
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>add-sources</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>${project.build.directory}/generated-sources/xjc</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
 
             <!-- Adds the temp directory (which holds the extracted DTD) 
                 to the directories cleaned by the 'clean' phase. -->
diff --git a/appserver/appclient/client/acc-config/src/main/resources/configBindings.xml b/appserver/appclient/client/acc-config/src/main/resources/configBindings.xml
index ae3dcb3..f207ab7 100644
--- a/appserver/appclient/client/acc-config/src/main/resources/configBindings.xml
+++ b/appserver/appclient/client/acc-config/src/main/resources/configBindings.xml
@@ -40,8 +40,8 @@
         print="java.lang.Boolean.toString"/>
 
     <conversion name="int" type="int"
-        parse="javax.xml.bind.DatatypeConverter.parseInt"
-        print="javax.xml.bind.DatatypeConverter.printInt"/>
+        parse="jakarta.xml.bind.DatatypeConverter.parseInt"
+        print="jakarta.xml.bind.DatatypeConverter.printInt"/>
 
     <conversion name="providerType" type="java.lang.String"
         parse="org.glassfish.appclient.client.acc.config.util.XML.parseProviderType" />
@@ -123,7 +123,7 @@
             xmlType="BOOLEAN"
             javaType="boolean"
             parseMethod="org.glassfish.appclient.client.acc.XML.parseBoolean"
-            printMethod="javax.xml.bind.DatatypeConverter.printBoolean"
+            printMethod="jakarta.xml.bind.DatatypeConverter.printBoolean"
             />
 
   </bindings>
diff --git a/appserver/appclient/client/acc-config/src/test/java/org/glassfish/appclient/client/acc/config/util/XMLTest.java b/appserver/appclient/client/acc-config/src/test/java/org/glassfish/appclient/client/acc/config/util/XMLTest.java
index f4696d5..58a44ea 100644
--- a/appserver/appclient/client/acc-config/src/test/java/org/glassfish/appclient/client/acc/config/util/XMLTest.java
+++ b/appserver/appclient/client/acc-config/src/test/java/org/glassfish/appclient/client/acc/config/util/XMLTest.java
@@ -32,9 +32,9 @@
 import java.io.InputStream;
 import java.util.List;
 import java.util.Properties;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Unmarshaller;
 import org.glassfish.appclient.client.acc.config.ClientContainer;
 import org.glassfish.appclient.client.acc.config.TargetServer;
 import org.junit.AfterClass;
diff --git a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/AppClientFacade.java b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/AppClientFacade.java
index cc35859..e45ecca 100644
--- a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/AppClientFacade.java
+++ b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/AppClientFacade.java
@@ -46,8 +46,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import javax.xml.bind.*;
-import javax.xml.bind.util.ValidationEventCollector;
+import jakarta.xml.bind.*;
+import jakarta.xml.bind.util.ValidationEventCollector;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
diff --git a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/AppClientContainer.java b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/AppClientContainer.java
index 8506537..678b14f 100644
--- a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/AppClientContainer.java
+++ b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/AppClientContainer.java
@@ -379,7 +379,7 @@
 
         //This is required for us to enable interrupt jaxws service
         //creation calls
-        System.setProperty("javax.xml.ws.spi.Provider",
+        System.setProperty("jakarta.xml.ws.spi.Provider",
                            "com.sun.enterprise.webservice.spi.ProviderImpl");
         //InjectionManager's injectClass will be called from getMainMethod
 
diff --git a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/Main.java b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/Main.java
index 31d7cff..381e150 100644
--- a/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/Main.java
+++ b/appserver/appclient/client/acc/src/main/java/org/glassfish/appclient/client/acc/Main.java
@@ -383,7 +383,7 @@
 //
 //            //This is required for us to enable interrupt jaxws service
 //            //creation calls
-//            System.setProperty("javax.xml.ws.spi.Provider",
+//            System.setProperty("jakarta.xml.ws.spi.Provider",
 //                               "com.sun.enterprise.webservice.spi.ProviderImpl");
 //
 //            // Inject the application client's injectable resources.  This
diff --git a/appserver/common/container-common/src/main/java/com/sun/enterprise/container/common/spi/WebServiceReferenceManager.java b/appserver/common/container-common/src/main/java/com/sun/enterprise/container/common/spi/WebServiceReferenceManager.java
index 5ba21f3..8391839 100644
--- a/appserver/common/container-common/src/main/java/com/sun/enterprise/container/common/spi/WebServiceReferenceManager.java
+++ b/appserver/common/container-common/src/main/java/com/sun/enterprise/container/common/spi/WebServiceReferenceManager.java
@@ -26,8 +26,8 @@
 
 /**
  * This class acts as a contract to resolve the
- * </code>javax.xml.ws.WebServiceRef</code> references
- * and also <code>javax.xml.ws.WebServiceContext</code>
+ * </code>jakarta.xml.ws.WebServiceRef</code> references
+ * and also <code>jakarta.xml.ws.WebServiceContext</code>
  * Whenever a lookup is done from GlassfishNamingManagerImpl
  * these methods are invoked to resolve the references
  *
diff --git a/appserver/core/api-exporter-fragment/pom.xml b/appserver/core/api-exporter-fragment/pom.xml
index 16e0abc..9c9a14c 100755
--- a/appserver/core/api-exporter-fragment/pom.xml
+++ b/appserver/core/api-exporter-fragment/pom.xml
@@ -151,6 +151,8 @@
 javax.json.stream; \
 javax.jws; \
 javax.jws.soap; \
+jakarta.jws; \
+jakarta.jws.soap; \
 javax.lang.model; \
 javax.lang.model.element; \
 javax.lang.model.type; \
@@ -279,6 +281,12 @@
 javax.xml.bind.attachment; \
 javax.xml.bind.helpers; \
 javax.xml.bind.util; \
+jakarta.xml.bind; \
+jakarta.xml.bind.annotation; \
+jakarta.xml.bind.annotation.adapters; \
+jakarta.xml.bind.attachment; \
+jakarta.xml.bind.helpers; \
+jakarta.xml.bind.util; \
 javax.xml.crypto; \
 javax.xml.crypto.dom; \
 javax.xml.crypto.dsig; \
@@ -288,9 +296,8 @@
 javax.xml.datatype; \
 javax.xml.namespace; \
 javax.xml.parsers; \
-javax.xml.registry; \
-javax.xml.registry.infomodel; \
 javax.xml.soap; \
+jakarta.xml.soap; \
 javax.xml.stream; \
 javax.xml.stream.events; \
 javax.xml.stream.util; \
@@ -308,6 +315,14 @@
 javax.xml.ws.spi; \
 javax.xml.ws.spi.http; \
 javax.xml.ws.wsaddressing; \
+jakarta.xml.ws; \
+jakarta.xml.ws.handler; \
+jakarta.xml.ws.handler.soap; \
+jakarta.xml.ws.http; \
+jakarta.xml.ws.soap; \
+jakarta.xml.ws.spi; \
+jakarta.xml.ws.spi.http; \
+jakarta.xml.ws.wsaddressing; \
 javax.xml.xpath; \
 org.ietf.jgss; \
 org.omg.CORBA; \
diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java
index cfce765..1f8c24b 100644
--- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java
+++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java
@@ -64,7 +64,7 @@
     private static final String ORB_RESOURCE_TYPE = "org.omg.CORBA.ORB";
 
     private static final String WEBSERVICE_CONTEXT_TYPE =
-        "javax.xml.ws.WebServiceContext";
+        "jakarta.xml.ws.WebServiceContext";
 
     // change field name from type to rType since it's error-prone 
     // to use the same field name as its super class
diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java
index 80d2f04..913115c 100644
--- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java
+++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java
@@ -273,7 +273,7 @@
 
             WSDolSupport support  = wSDolSupportProvider.get(); 
             if (support!=null) {
-                webServiceContext = support.getType("javax.xml.ws.WebServiceContext");
+                webServiceContext = support.getType("jakarta.xml.ws.WebServiceContext");
             }
         }   catch(Exception e) {
             // we don't care, either we don't have the class, ot the bundled is not installed
diff --git a/appserver/ejb/ejb-container/osgi.bundle b/appserver/ejb/ejb-container/osgi.bundle
index 78a67c7..3bc084b 100644
--- a/appserver/ejb/ejb-container/osgi.bundle
+++ b/appserver/ejb/ejb-container/osgi.bundle
@@ -36,6 +36,10 @@
                         javax.xml.ws;resolution:=optional, \
                         javax.xml.ws.handler;resolution:=optional, \
                         javax.jws;resolution:=optional, \
+                        jakarta.xml.soap;resolution:=optional, \
+                        jakarta.xml.ws;resolution:=optional, \
+                        jakarta.xml.ws.handler;resolution:=optional, \
+                        jakarta.jws;resolution:=optional, \
                         org.glassfish.apf.context, \
                         org.glassfish.ejb.deployment.archive, \
                         *
diff --git a/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/EjbInvocation.java b/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/EjbInvocation.java
index ad1a0ea..fe8a148 100644
--- a/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/EjbInvocation.java
+++ b/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/EjbInvocation.java
@@ -30,8 +30,8 @@
 import com.sun.ejb.containers.interceptors.InterceptorUtil;
 import javax.naming.NameNotFoundException;
 import javax.transaction.Transaction;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.soap.SOAPMessage;
+import jakarta.xml.ws.WebServiceContext;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.rmi.UnmarshalException;
diff --git a/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/codegen/ServiceInterfaceGenerator.java b/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/codegen/ServiceInterfaceGenerator.java
index 8f62183..95b5e93 100644
--- a/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/codegen/ServiceInterfaceGenerator.java
+++ b/appserver/ejb/ejb-container/src/main/java/com/sun/ejb/codegen/ServiceInterfaceGenerator.java
@@ -27,7 +27,7 @@
 
 import java.util.logging.Logger;
 
-import javax.jws.WebMethod;
+import jakarta.jws.WebMethod;
 
 import static java.lang.reflect.Modifier.*;
 
diff --git a/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/annotation/handlers/AbstractEjbHandler.java b/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/annotation/handlers/AbstractEjbHandler.java
index 8bd7bf7..c7e3024 100644
--- a/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/annotation/handlers/AbstractEjbHandler.java
+++ b/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/deployment/annotation/handlers/AbstractEjbHandler.java
@@ -523,7 +523,7 @@
         // for @WebService on bean class
         boolean canDoWebServiceAnnCheck = false;
         try {
-            canDoWebServiceAnnCheck = (provider.getType("javax.jws.WebService") != null);
+            canDoWebServiceAnnCheck = (provider.getType("jakarta.jws.WebService") != null);
 
         } catch(Exception e) {
             log(Level.FINE, ainfo, e.getMessage());
@@ -533,7 +533,7 @@
             (clientInterfaces.size() == 0) &&
             !ejbDesc.hasWebServiceEndpointInterface() &&
             ( !canDoWebServiceAnnCheck ||
-              (ejbClass.getAnnotation(javax.jws.WebService.class) == null) ) ) {
+              (ejbClass.getAnnotation(jakarta.jws.WebService.class) == null) ) ) {
             ejbDesc.setLocalBean(true);
         }
         
diff --git a/appserver/pom.xml b/appserver/pom.xml
index 9f95f48..c7f783f 100644
--- a/appserver/pom.xml
+++ b/appserver/pom.xml
@@ -80,7 +80,7 @@
 
         <jsftemplating.version>2.1.4</jsftemplating.version>
         <woodstox.version>5.1.0</woodstox.version>
-        <jaxb.version>2.3.2</jaxb.version>
+        <jaxb.version>3.0.0-M2</jaxb.version>
         <stax2-api.version>4.1</stax2-api.version>
         <eclipselink.version>2.7.4</eclipselink.version>
         <jakarta-persistence-api.version>2.2.3</jakarta-persistence-api.version>
diff --git a/appserver/security/appclient.security/src/main/java/com/sun/enterprise/security/appclient/ConfigXMLParser.java b/appserver/security/appclient.security/src/main/java/com/sun/enterprise/security/appclient/ConfigXMLParser.java
index cdadf33..9272133 100644
--- a/appserver/security/appclient.security/src/main/java/com/sun/enterprise/security/appclient/ConfigXMLParser.java
+++ b/appserver/security/appclient.security/src/main/java/com/sun/enterprise/security/appclient/ConfigXMLParser.java
@@ -30,15 +30,15 @@
 import com.sun.logging.LogDomains;
 
 import java.util.List;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
 import org.glassfish.appclient.client.acc.config.*;
 import sun.security.util.PropertyExpander;
 import com.sun.enterprise.security.jmac.AuthMessagePolicy;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import javax.security.auth.message.MessagePolicy;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.Unmarshaller;
 import org.glassfish.internal.api.Globals;
 
 
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/authorize/PolicyContextHandlerImpl.java b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/authorize/PolicyContextHandlerImpl.java
index 8c0f0be..8ee2a4f 100644
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/authorize/PolicyContextHandlerImpl.java
+++ b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/authorize/PolicyContextHandlerImpl.java
@@ -30,7 +30,7 @@
 
     public static final String HTTP_SERVLET_REQUEST =
         "javax.servlet.http.HttpServletRequest";
-    public static final String SOAP_MESSAGE = "javax.xml.soap.SOAPMessage";
+    public static final String SOAP_MESSAGE = "jakarta.xml.soap.SOAPMessage";
     public static final String ENTERPRISE_BEAN = "javax.ejb.EnterpriseBean";
     public static final String EJB_ARGUMENTS = "javax.ejb.arguments";
     public static final String SUBJECT = "javax.security.auth.Subject.container";
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/BaseAuthConfig.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/BaseAuthConfig.java
index a6d6440..20b150e 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/BaseAuthConfig.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/BaseAuthConfig.java
@@ -24,16 +24,16 @@
 import java.util.ArrayList;
 
 import javax.xml.namespace.QName;
-import javax.xml.soap.MimeHeaders;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPEnvelope;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.soap.Name;
-import javax.xml.soap.SOAPPart;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.MimeHeaders;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPEnvelope;
+import jakarta.xml.soap.SOAPMessage;
+import jakarta.xml.soap.Name;
+import jakarta.xml.soap.SOAPPart;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
 import com.sun.enterprise.deployment.MethodDescriptor;
 import com.sun.enterprise.deployment.runtime.common.MessageDescriptor;
 import com.sun.enterprise.deployment.runtime.common.MessageSecurityDescriptor;
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ClientAuthConfig.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ClientAuthConfig.java
index eab30df..4c13ab6 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ClientAuthConfig.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ClientAuthConfig.java
@@ -23,7 +23,7 @@
 import com.sun.enterprise.deployment.runtime.common.MessageSecurityDescriptor;
 import com.sun.enterprise.deployment.runtime.common.MessageSecurityBindingDescriptor;
 
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 /**
  * This class is the client container's interface to the AuthConfig subsystem
@@ -97,7 +97,7 @@
     }
 
     public ClientAuthContext getAuthContext
-	(javax.xml.ws.handler.soap.SOAPMessageContext context) {
+	(jakarta.xml.ws.handler.soap.SOAPMessageContext context) {
 	return (ClientAuthContext) getContext(context);
     }
 
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/PacketMapMessageInfo.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/PacketMapMessageInfo.java
index 9f12659..d0ff451 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/PacketMapMessageInfo.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/PacketMapMessageInfo.java
@@ -17,7 +17,7 @@
 package com.sun.enterprise.security.jmac.provider;
 
 import java.util.Map;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 import com.sun.xml.ws.api.message.Packet;
 
 
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/SOAPAuthParam.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/SOAPAuthParam.java
index 132eaff..a0be4be 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/SOAPAuthParam.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/SOAPAuthParam.java
@@ -19,7 +19,7 @@
 import com.sun.enterprise.security.jauth.AuthParam;
 import java.util.Map;
 import java.util.HashMap;
-import javax.xml.soap.*;
+import jakarta.xml.soap.*;
 
 import com.sun.xml.ws.api.message.Message;
 import com.sun.xml.ws.api.message.Messages;
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ServerAuthConfig.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ServerAuthConfig.java
index 19e178d..09d87af 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ServerAuthConfig.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/ServerAuthConfig.java
@@ -96,7 +96,7 @@
     }
 
     public ServerAuthContext getAuthContext
-	(javax.xml.ws.handler.soap.SOAPMessageContext context) {
+	(jakarta.xml.ws.handler.soap.SOAPMessageContext context) {
 	return (ServerAuthContext) getContext(context);
     }
 
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/config/PipeHelper.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/config/PipeHelper.java
index 32ab0f8..0d071d8 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/config/PipeHelper.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/jmac/provider/config/PipeHelper.java
@@ -28,7 +28,7 @@
 import javax.security.auth.message.config.ClientAuthContext;
 import javax.security.auth.message.config.ServerAuthConfig;
 import javax.security.auth.message.config.ServerAuthContext;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.ws.WebServiceException;
 //import com.sun.ejb.Container;
 //import com.sun.ejb.Invocation;
 //import com.sun.enterprise.InvocationManager;
@@ -74,8 +74,8 @@
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 import javax.servlet.http.HttpServletRequest;
-import javax.xml.bind.UnmarshalException;
-import javax.xml.ws.handler.MessageContext;
+import jakarta.xml.bind.UnmarshalException;
+import jakarta.xml.ws.handler.MessageContext;
 import org.glassfish.api.invocation.ComponentInvocation;
 import org.glassfish.api.invocation.InvocationManager;
 
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityPipe.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityPipe.java
index 12dc7d0..fc4d076 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityPipe.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityPipe.java
@@ -25,7 +25,7 @@
 import javax.security.auth.Subject;
 import javax.security.auth.message.config.*;
 import javax.security.auth.message.AuthStatus;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.ws.WebServiceException;
 
 import com.sun.enterprise.security.jmac.provider.PacketMessageInfo;
 import com.sun.enterprise.security.jmac.provider.PacketMapMessageInfo;
@@ -41,7 +41,7 @@
 
 import com.sun.xml.ws.security.secconv.SecureConversationInitiator;
 import com.sun.xml.ws.security.secconv.WSSecureConversationException;
-import javax.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBElement;
 
 /**
  * This pipe is used to do client side security for app server
@@ -121,7 +121,7 @@
 
 	PacketMessageInfo info= new PacketMapMessageInfo(request,new Packet());
         
-        info.getMap().put(javax.xml.ws.Endpoint.WSDL_SERVICE,
+        info.getMap().put(jakarta.xml.ws.Endpoint.WSDL_SERVICE,
             helper.getProperty(PipeConstants.WSDL_SERVICE));
 
         AuthStatus status = AuthStatus.SEND_SUCCESS;
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityTube.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityTube.java
index d7feda2..2b792eb 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityTube.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/ClientSecurityTube.java
@@ -27,7 +27,7 @@
 import javax.security.auth.Subject;
 import javax.security.auth.message.config.*;
 import javax.security.auth.message.AuthStatus;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.ws.WebServiceException;
 
 import com.sun.enterprise.security.jmac.provider.PacketMessageInfo;
 import com.sun.enterprise.security.jmac.provider.PacketMapMessageInfo;
@@ -43,7 +43,7 @@
 import com.sun.xml.ws.api.pipe.helper.AbstractFilterTubeImpl;
 import com.sun.xml.ws.security.secconv.SecureConversationInitiator;
 import com.sun.xml.ws.security.secconv.WSSecureConversationException;
-import javax.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBElement;
 
 /**
  * This pipe is used to do client side security for app server
@@ -115,7 +115,7 @@
 
             info = new PacketMapMessageInfo(request, new Packet());
             AuthStatus status = AuthStatus.SEND_SUCCESS;
-            info.getMap().put(javax.xml.ws.Endpoint.WSDL_SERVICE,
+            info.getMap().put(jakarta.xml.ws.Endpoint.WSDL_SERVICE,
                     helper.getProperty(PipeConstants.WSDL_SERVICE));
 
             Subject locClientSubject = getClientSubject(request);
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityPipe.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityPipe.java
index 6607a08..9c72abc 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityPipe.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityPipe.java
@@ -27,7 +27,7 @@
 import javax.security.auth.message.AuthException;
 import javax.security.auth.message.AuthStatus;
 
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.ws.WebServiceException;
 
 import com.sun.enterprise.security.jmac.provider.PacketMapMessageInfo;
 import com.sun.enterprise.security.jmac.provider.PacketMessageInfo;
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityTube.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityTube.java
index 5e03dd8..5b5a7bc 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityTube.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/CommonServerSecurityTube.java
@@ -29,7 +29,7 @@
 import javax.security.auth.message.AuthException;
 import javax.security.auth.message.AuthStatus;
 
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.ws.WebServiceException;
 
 import com.sun.enterprise.security.jmac.provider.PacketMapMessageInfo;
 import com.sun.enterprise.security.jmac.provider.PacketMessageInfo;
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/SecurityServiceImpl.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/SecurityServiceImpl.java
index 0f54a04..8031ab3 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/SecurityServiceImpl.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/SecurityServiceImpl.java
@@ -50,7 +50,7 @@
 import java.util.List;
 import javax.inject.Inject;
 import javax.security.jacc.PolicyContext;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 /**
  *
diff --git a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/WebServicesDelegateImpl.java b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/WebServicesDelegateImpl.java
index 5690a20..a11c67d 100644
--- a/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/WebServicesDelegateImpl.java
+++ b/appserver/security/webservices.security/src/main/java/com/sun/enterprise/security/webservices/WebServicesDelegateImpl.java
@@ -34,14 +34,14 @@
 import java.util.logging.Logger;
 import javax.security.auth.message.MessageInfo;
 import javax.xml.namespace.QName;
-import javax.xml.soap.MimeHeaders;
-import javax.xml.soap.Name;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPEnvelope;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.soap.SOAPPart;
+import jakarta.xml.soap.MimeHeaders;
+import jakarta.xml.soap.Name;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPEnvelope;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPPart;
 import org.glassfish.api.invocation.ComponentInvocation;
 
 import org.jvnet.hk2.annotations.Service;
diff --git a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/ConfirmationServlet.java b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/ConfirmationServlet.java
index 8d0c2df..88c8280 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/ConfirmationServlet.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/ConfirmationServlet.java
@@ -16,7 +16,7 @@
 
 package com.sun.cb;
 
-import javax.xml.soap.*;
+import jakarta.xml.soap.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/OrderRequest.java b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/OrderRequest.java
index b63b5f1..c611201 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/OrderRequest.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/OrderRequest.java
@@ -22,7 +22,7 @@
 import java.text.SimpleDateFormat;
 import java.math.BigDecimal;
 
-import javax.xml.soap.*;
+import jakarta.xml.soap.*;
 
 public class OrderRequest {
     String url;
diff --git a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListRequest.java b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListRequest.java
index 222e241..a3c3344 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListRequest.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListRequest.java
@@ -16,7 +16,7 @@
 
 package com.sun.cb;
 
-import javax.xml.soap.*;
+import jakarta.xml.soap.*;
 import java.util.*;
 import java.math.BigDecimal;
 
diff --git a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListServlet.java b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListServlet.java
index 08543fd..005da45 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListServlet.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/PriceListServlet.java
@@ -16,7 +16,7 @@
 
 package com.sun.cb;
 
-import javax.xml.soap.*;
+import jakarta.xml.soap.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestOrderRequest.java b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestOrderRequest.java
index 98a2e4f..a087bf9 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestOrderRequest.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestOrderRequest.java
@@ -20,7 +20,7 @@
 import java.io.*;
 import java.util.*;
 
-import javax.xml.soap.*;
+import jakarta.xml.soap.*;
 
 public class TestOrderRequest {
     public static void main(String [] args) {    
diff --git a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestPriceListRequest.java b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestPriceListRequest.java
index 568cf55..c48f52e 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestPriceListRequest.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/jsr88/misc/exampleFromJ2EETutorial/cb/saaj/src/com/sun/cb/TestPriceListRequest.java
@@ -16,7 +16,7 @@
 
 package com.sun.cb;
 
-import javax.xml.soap.*;
+import jakarta.xml.soap.*;
 import java.util.*;
 
 import java.net.*;
diff --git a/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/client/Client.java b/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/client/Client.java
index fed5ae7..23dccf7 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/deployment/webservices/noinf/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/client/Client.java b/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/client/Client.java
index f672c03..51a2ccb 100644
--- a/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/client/Client.java
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.ejb.webservice.commit.client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/ejb/CommitBean.java b/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/ejb/CommitBean.java
index 72d8c0e..9ad9da4 100644
--- a/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/ejb/CommitBean.java
+++ b/appserver/tests/appserv-tests/devtests/ejb/webservice/commit/ejb/CommitBean.java
@@ -18,7 +18,7 @@
 
 import javax.ejb.*;
 import javax.annotation.Resource;
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.sql.*;
 import java.util.*;
 import java.sql.*;
diff --git a/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsRequestScoped/servlet/test/NewWebService.java b/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsRequestScoped/servlet/test/NewWebService.java
index 13a753c..f5ba846 100644
--- a/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsRequestScoped/servlet/test/NewWebService.java
+++ b/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsRequestScoped/servlet/test/NewWebService.java
@@ -23,9 +23,9 @@
 import javax.annotation.Resource;
 import javax.inject.Inject;
 import jakarta.jms.*;
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
 
 /**
  *
diff --git a/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsTransactionScoped/servlet/test/NewWebService.java b/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsTransactionScoped/servlet/test/NewWebService.java
index 4133870..916abdd 100644
--- a/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsTransactionScoped/servlet/test/NewWebService.java
+++ b/appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsTransactionScoped/servlet/test/NewWebService.java
@@ -1,4 +1,4 @@
-/*
+/*uto-merging appserver/tests/appserv-tests/devtests/jms/injection/jmsContext/basic/wsRequestScoped/servlet/test/NewWebService.java
  * Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -23,9 +23,9 @@
 import javax.annotation.Resource;
 import javax.inject.Inject;
 import jakarta.jms.*;
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
 import javax.transaction.UserTransaction;
 
 /**
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestClientAuthModule.java b/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestClientAuthModule.java
index 955e2f7..212709b 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestClientAuthModule.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestClientAuthModule.java
@@ -25,7 +25,7 @@
 import javax.security.auth.message.MessagePolicy;
 import javax.security.auth.message.module.ClientAuthModule;
 import javax.xml.namespace.QName;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 public class SOAPTestClientAuthModule implements ClientAuthModule {
     private CallbackHandler handler = null;
@@ -46,7 +46,7 @@
             Subject clientSubject) throws AuthException {
         SOAPMessage reqMessage = (SOAPMessage)messageInfo.getRequestMessage();
         QName serviceName = (QName)messageInfo.getMap().get(
-                javax.xml.ws.Endpoint.WSDL_SERVICE);
+                jakarta.xml.ws.Endpoint.WSDL_SERVICE);
         System.out.println("serviceName = " + serviceName);
         if (serviceName == null) {
             throw new AuthException("serviceName is null");
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestServerAuthModule.java b/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestServerAuthModule.java
index dccc935..57b2cd3 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestServerAuthModule.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/SOAPTestServerAuthModule.java
@@ -24,7 +24,7 @@
 import javax.security.auth.message.MessageInfo;
 import javax.security.auth.message.MessagePolicy;
 import javax.security.auth.message.module.ServerAuthModule;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 public class SOAPTestServerAuthModule implements ServerAuthModule {
     private CallbackHandler handler = null;
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/Util.java b/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/Util.java
index 447da8e..52eb053 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/Util.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soap/authmodule/Util.java
@@ -17,10 +17,10 @@
 package com.sun.s1asdev.security.jmac.soap;
 
 import java.io.IOException;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPMessage;
 
 class Util {
     static String getValue(SOAPMessage message) throws SOAPException {
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/Client.java.template b/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/Client.java.template
index 8d1d6f8..8680feb 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/Client.java.template
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/Client.java.template
@@ -18,8 +18,8 @@
 
 import java.util.Map;
 
-import javax.jws.HandlerChain;
-import javax.xml.ws.WebServiceRef;
+import jakarta.jws.HandlerChain;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/TestHandler.java b/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/TestHandler.java
index f566b46..beb0a07 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soap/client/TestHandler.java
@@ -20,10 +20,10 @@
 import java.util.Set;
 
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soap/ejbws/HelloEjb.java b/appserver/tests/appserv-tests/devtests/security/jmac/soap/ejbws/HelloEjb.java
index ba7b517..14296fd 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soap/ejbws/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soap/ejbws/HelloEjb.java
@@ -17,7 +17,7 @@
 package com.sun.s1asdev.security.jmac.soap.ejbws;
 
 import javax.ejb.Stateless;
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @Stateless
 @WebService(targetNamespace="http://ejbws.soap.jmac.security.s1asdev.sun.com", serviceName="JmacSoapEjbService")
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soap/servletws/HelloServlet.java b/appserver/tests/appserv-tests/devtests/security/jmac/soap/servletws/HelloServlet.java
index 6b60bd2..afd6af5 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soap/servletws/HelloServlet.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soap/servletws/HelloServlet.java
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.jmac.soap.servletws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(targetNamespace="http://servletws.soap.jmac.security.s1asdev.sun.com", serviceName="JmacSoapServletService")
 public class HelloServlet {
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestClientAuthModule.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestClientAuthModule.java
index ac848cc..79a1bd4 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestClientAuthModule.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestClientAuthModule.java
@@ -24,7 +24,7 @@
 import javax.security.auth.message.MessageInfo;
 import javax.security.auth.message.MessagePolicy;
 import javax.security.auth.message.module.ClientAuthModule;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 public class SOAPDefaultTestClientAuthModule implements ClientAuthModule {
     private CallbackHandler handler = null;
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestServerAuthModule.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestServerAuthModule.java
index 8e5b6c2..8f3f05e 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestServerAuthModule.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/SOAPDefaultTestServerAuthModule.java
@@ -24,7 +24,7 @@
 import javax.security.auth.message.MessageInfo;
 import javax.security.auth.message.MessagePolicy;
 import javax.security.auth.message.module.ServerAuthModule;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 public class SOAPDefaultTestServerAuthModule implements ServerAuthModule {
     private CallbackHandler handler = null;
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/Util.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/Util.java
index 056dbab..b9f4694 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/Util.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/authmodule/Util.java
@@ -17,10 +17,10 @@
 package com.sun.s1asdev.security.jmac.soapdefault;
 
 import java.io.IOException;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPMessage;
 
 class Util {
     static String getValue(SOAPMessage message) throws SOAPException {
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/client/Client.java.template b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/client/Client.java.template
index 8b6cfd7..c3427c0 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/client/Client.java.template
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/client/Client.java.template
@@ -18,7 +18,7 @@
 
 import java.util.Map;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/ejbws/HelloEjb.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/ejbws/HelloEjb.java
index 2c14a4e..ec8c068 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/ejbws/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/ejbws/HelloEjb.java
@@ -17,7 +17,7 @@
 package com.sun.s1asdev.security.jmac.soapdefault.ejbws;
 
 import javax.ejb.Stateless;
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @Stateless
 @WebService(targetNamespace="http://ejbws.soapdefault.jmac.security.s1asdev.sun.com", serviceName="JmacSoapDefaultEjbService")
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/servletws/HelloServlet.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/servletws/HelloServlet.java
index b5cc0b6..a769f75 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/servletws/HelloServlet.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapDefault/servletws/HelloServlet.java
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.jmac.soapdefault.servletws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(targetNamespace="http://servletws.soapdefault.jmac.security.s1asdev.sun.com", serviceName="JmacSoapDefaultServletService")
 public class HelloServlet {
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestClientAuthModule.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestClientAuthModule.java
index d1deec0..8781e5a 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestClientAuthModule.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestClientAuthModule.java
@@ -25,7 +25,7 @@
 import javax.security.auth.message.MessagePolicy;
 import javax.security.auth.message.module.ClientAuthModule;
 import javax.xml.namespace.QName;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 public class SOAPEmbeddedTestClientAuthModule implements ClientAuthModule {
     private CallbackHandler handler = null;
@@ -46,7 +46,7 @@
             Subject clientSubject) throws AuthException {
         SOAPMessage reqMessage = (SOAPMessage)messageInfo.getRequestMessage();
         QName serviceName = (QName)messageInfo.getMap().get(
-                javax.xml.ws.Endpoint.WSDL_SERVICE);
+                jakarta.xml.ws.Endpoint.WSDL_SERVICE);
         System.out.println("serviceName = " + serviceName);
         if (serviceName == null) {
             throw new AuthException("serviceName is null");
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestServerAuthModule.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestServerAuthModule.java
index 578deff..776a9be 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestServerAuthModule.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/SOAPEmbeddedTestServerAuthModule.java
@@ -24,7 +24,7 @@
 import javax.security.auth.message.MessageInfo;
 import javax.security.auth.message.MessagePolicy;
 import javax.security.auth.message.module.ServerAuthModule;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 public class SOAPEmbeddedTestServerAuthModule implements ServerAuthModule {
     private CallbackHandler handler = null;
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/Util.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/Util.java
index 89bea16..d66da28 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/Util.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/authmodule/Util.java
@@ -17,10 +17,10 @@
 package com.sun.s1asdev.security.jmac.soapembedded;
 
 import java.io.IOException;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPMessage;
 
 class Util {
     static String getValue(SOAPMessage message) throws SOAPException {
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/ejbws/HelloEjb.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/ejbws/HelloEjb.java
index 2748cb8..f2b925b 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/ejbws/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/ejbws/HelloEjb.java
@@ -17,7 +17,7 @@
 package com.sun.s1asdev.security.jmac.soapembedded.ejbws;
 
 import javax.ejb.Stateless;
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @Stateless
 @WebService(targetNamespace="http://ejbws.soapembedded.jmac.security.s1asdev.sun.com", serviceName="JmacSoapEmbeddedEjbService")
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/servletws/HelloServlet.java b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/servletws/HelloServlet.java
index 70c4d2a..08af97b 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/servletws/HelloServlet.java
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/servletws/HelloServlet.java
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.jmac.soapembedded.servletws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(targetNamespace="http://servletws.soapembedded.jmac.security.s1asdev.sun.com", serviceName="JmacSoapEmbeddedServletService")
 public class HelloServlet {
diff --git a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/webclient/Servlet.java.template b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/webclient/Servlet.java.template
index 37c406a..ff01683 100644
--- a/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/webclient/Servlet.java.template
+++ b/appserver/tests/appserv-tests/devtests/security/jmac/soapEmbedded/webclient/Servlet.java.template
@@ -24,7 +24,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.s1asdev.security.jmac.soapembedded.ejbws.HelloEjb;
 import com.sun.s1asdev.security.jmac.soapembedded.ejbws.JmacSoapEmbeddedEjbService;
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/gartner/client/PingClient.java b/appserver/tests/appserv-tests/devtests/security/wss/gartner/client/PingClient.java
index 042c854..a8bb4e1 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/gartner/client/PingClient.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/gartner/client/PingClient.java
@@ -16,8 +16,8 @@
 
 package com.sun.s1asdev.security.wss.gartner.client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/gartner/ejbws/PingEjb.java b/appserver/tests/appserv-tests/devtests/security/wss/gartner/ejbws/PingEjb.java
index 5500ece..f4d8871 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/gartner/ejbws/PingEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/gartner/ejbws/PingEjb.java
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.wss.gartner;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @Stateless
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/gartner/servletws/PingServlet.java b/appserver/tests/appserv-tests/devtests/security/wss/gartner/servletws/PingServlet.java
index 0bc34c7..4a8673b 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/gartner/servletws/PingServlet.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/gartner/servletws/PingServlet.java
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.wss.gartner;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(targetNamespace="http://gartner.wss.security.s1asdev.sun.com")
 public class PingServlet {
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/roles/client/Client.java.template b/appserver/tests/appserv-tests/devtests/security/wss/roles/client/Client.java.template
index 3b571c4..1f0df6b 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/roles/client/Client.java.template
+++ b/appserver/tests/appserv-tests/devtests/security/wss/roles/client/Client.java.template
@@ -18,8 +18,8 @@
 
 import java.util.Map;
 
-import javax.xml.ws.BindingProvider;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws/HelloEjb.java b/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws/HelloEjb.java
index ce4bd3b..accef76 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws/HelloEjb.java
@@ -25,8 +25,8 @@
 import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import javax.ejb.SessionContext;
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceContext;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceContext;
 
 import com.sun.s1asdev.security.wss.roles.ejb.SfulLocal;
 
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws2/HelloEjb2.java b/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws2/HelloEjb2.java
index 04048d2..adff6af 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws2/HelloEjb2.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/roles/ejbws2/HelloEjb2.java
@@ -18,7 +18,7 @@
 
 import javax.annotation.security.RolesAllowed;
 import javax.ejb.Stateless;
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @Stateless
 @WebService(targetNamespace="http://ejbws2.roles.wss.security.s1asdev.sun.com", serviceName="WssRolesEjb2Service")
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/roles/servletws/HelloServlet.java b/appserver/tests/appserv-tests/devtests/security/wss/roles/servletws/HelloServlet.java
index e276afd..da78f65 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/roles/servletws/HelloServlet.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/roles/servletws/HelloServlet.java
@@ -17,8 +17,8 @@
 package com.sun.s1asdev.security.wss.roles.servletws;
 
 import javax.annotation.Resource;
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceContext;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceContext;
 
 @WebService(targetNamespace="http://servletws.roles.wss.security.s1asdev.sun.com", serviceName="WssRolesServletService")
 public class HelloServlet {
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/roles2/client/Client.java.template b/appserver/tests/appserv-tests/devtests/security/wss/roles2/client/Client.java.template
index 244d9c2..c3b1161 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/roles2/client/Client.java.template
+++ b/appserver/tests/appserv-tests/devtests/security/wss/roles2/client/Client.java.template
@@ -18,8 +18,8 @@
 
 import java.util.Map;
 
-import javax.xml.ws.BindingProvider;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/roles2/ejbws/HelloEjb.java b/appserver/tests/appserv-tests/devtests/security/wss/roles2/ejbws/HelloEjb.java
index e3a5f33..dc493b7 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/roles2/ejbws/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/roles2/ejbws/HelloEjb.java
@@ -25,7 +25,7 @@
 import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import javax.ejb.SessionContext;
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 import com.sun.s1asdev.security.wss.roles2.ejb.SfulLocal;
 
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/ssl/client/Client.java.template b/appserver/tests/appserv-tests/devtests/security/wss/ssl/client/Client.java.template
index 638aac1..3a16825 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/ssl/client/Client.java.template
+++ b/appserver/tests/appserv-tests/devtests/security/wss/ssl/client/Client.java.template
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.wss.ssl.client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.s1asdev.security.wss.ssl.ejbws.HelloEjb;
 import com.sun.s1asdev.security.wss.ssl.ejbws.WssSslEjbService;
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/ssl/ejbws/HelloEjb.java b/appserver/tests/appserv-tests/devtests/security/wss/ssl/ejbws/HelloEjb.java
index 4913293..dad4f2b 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/ssl/ejbws/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/ssl/ejbws/HelloEjb.java
@@ -17,7 +17,7 @@
 package com.sun.s1asdev.security.wss.ssl.ejbws;
 
 import javax.ejb.Stateless;
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @Stateless
 @WebService(targetNamespace="http://ejbws.ssl.wss.security.s1asdev.sun.com", serviceName="WssSslEjbService")
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/ssl/servletws/HelloServlet.java b/appserver/tests/appserv-tests/devtests/security/wss/ssl/servletws/HelloServlet.java
index 3df17c1..57db6b6 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/ssl/servletws/HelloServlet.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/ssl/servletws/HelloServlet.java
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.wss.ssl.servletws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(targetNamespace="http://servletws.ssl.wss.security.s1asdev.sun.com", serviceName="WssSslServletService")
 public class HelloServlet {
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/client/Client.java.template b/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/client/Client.java.template
index 3b94eb6..873fe6a 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/client/Client.java.template
+++ b/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/client/Client.java.template
@@ -16,7 +16,7 @@
 
 package com.sun.s1asdev.security.wss.sslclientcert.client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.s1asdev.security.wss.sslclientcert.ejbws.HelloEjb;
 import com.sun.s1asdev.security.wss.sslclientcert.ejbws.WssSslClientCertEjbService;
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/ejbws/HelloEjb.java b/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/ejbws/HelloEjb.java
index 9b4e8b8..7f2b8f4 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/ejbws/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/ejbws/HelloEjb.java
@@ -19,8 +19,8 @@
 import javax.annotation.Resource;
 import javax.ejb.SessionContext;
 import javax.ejb.Stateless;
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceContext;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceContext;
 
 @Stateless
 @WebService(targetNamespace="http://ejbws.sslclientcert.wss.security.s1asdev.sun.com", serviceName="WssSslClientCertEjbService")
diff --git a/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/servletws/HelloServlet.java b/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/servletws/HelloServlet.java
index 4a02115..6151be9 100644
--- a/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/servletws/HelloServlet.java
+++ b/appserver/tests/appserv-tests/devtests/security/wss/sslclientcert/servletws/HelloServlet.java
@@ -17,8 +17,8 @@
 package com.sun.s1asdev.security.wss.sslclientcert.servletws;
 
 import javax.annotation.Resource;
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceContext;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceContext;
 
 @WebService(targetNamespace="http://servletws.sslclientcert.wss.security.s1asdev.sun.com", serviceName="WssSslClientCertServletService")
 public class HelloServlet {
diff --git a/appserver/tests/appserv-tests/devtests/web/servlet-3.0/servletContainerInitializer/sharedLibWithWars/sharedlib4/com/sun/devtests/web/SharedLib4ServContInit.java b/appserver/tests/appserv-tests/devtests/web/servlet-3.0/servletContainerInitializer/sharedLibWithWars/sharedlib4/com/sun/devtests/web/SharedLib4ServContInit.java
index d036894..c8887f2 100644
--- a/appserver/tests/appserv-tests/devtests/web/servlet-3.0/servletContainerInitializer/sharedLibWithWars/sharedlib4/com/sun/devtests/web/SharedLib4ServContInit.java
+++ b/appserver/tests/appserv-tests/devtests/web/servlet-3.0/servletContainerInitializer/sharedLibWithWars/sharedlib4/com/sun/devtests/web/SharedLib4ServContInit.java
@@ -20,7 +20,7 @@
 import javax.servlet.*;
 import javax.servlet.annotation.*;
 
-@HandlesTypes(javax.jws.WebService.class)
+@HandlesTypes(jakarta.jws.WebService.class)
 public class SharedLib4ServContInit implements ServletContainerInitializer {
     public SharedLib4ServContInit() {
 	System.out.println("SHARED LIB 4 CONST");
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/async/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/async/client/Client.java
index b248058..6515a93 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/async/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/async/client/Client.java
@@ -20,9 +20,9 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.AsyncHandler;
+import jakarta.xml.ws.Response;
 
 import endpoint.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/async/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/async/endpoint/AddNumbersImpl.java
index 0dac6b3..77c25bd 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/async/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/async/endpoint/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public class AddNumbersImpl {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/endpoint/SubtractNumbersImpl.java
index b855a46..398727a 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService (serviceName="junkjunkjunk", endpointInterface="endpoint.SubtractNumbersPortType")
+@jakarta.jws.WebService (serviceName="junkjunkjunk", endpointInterface="endpoint.SubtractNumbersPortType")
 public class SubtractNumbersImpl implements SubtractNumbersPortType {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/Client.java
index 500a5da..d1423e7 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/TestHandler.java
index 5421452..eb1629b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-1/webclient/TestHandler.java
@@ -22,10 +22,10 @@
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/endpoint/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/endpoint/TestHandler.java
index 2454918..6ee7a2c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/endpoint/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/endpoint/TestHandler.java
@@ -20,10 +20,10 @@
 import java.util.Set;
 
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/Client.java
index 97f28be..ca03165 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/TestHandler.java
index 2282aaf..4a6ad5f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/client-handler-2/webclient/TestHandler.java
@@ -20,10 +20,10 @@
 import java.util.Set;
 
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/client/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/client/webclient/Client.java
index 67d4564..e605f12 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/client/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/client/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 import com.example.hello1.*;
 import com.example.hello2.*;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc1/endpoint1/Hello1.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc1/endpoint1/Hello1.java
index 9ddb8e5..691c398 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc1/endpoint1/Hello1.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc1/endpoint1/Hello1.java
@@ -16,8 +16,8 @@
 
 package endpoint1;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Hello1",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc2/endpoint2/Hello2.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc2/endpoint2/Hello2.java
index 9dbdc9b..c32fe7d 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc2/endpoint2/Hello2.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/containerresolver/svc2/endpoint2/Hello2.java
@@ -16,8 +16,8 @@
 
 package endpoint2;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Hello2",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/endpoint/SubtractNumbersImpl.java
index 34a0642..dc8a230 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService (serviceName="junkjunkjunk", portName="SubtractNumbersPortType", endpointInterface="endpoint.SubtractNumbersPortType")
+@jakarta.jws.WebService (serviceName="junkjunkjunk", portName="SubtractNumbersPortType", endpointInterface="endpoint.SubtractNumbersPortType")
 public class SubtractNumbersImpl implements SubtractNumbersPortType {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/webclient/Client.java
index baacae8..8c29780 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/dol-override-1/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/client/Client.java
index 5528917..3ae546d 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.example.hello.HelloService;
 import com.example.hello.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/endpoint/Hello.java
index ed4481f..7475c65 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/externalwsdl/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Hello",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/fault/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/fault/client/Client.java
index 124fdf6..bc2a69b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/fault/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/fault/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.example.hello.MyService;
 import com.example.hello.MyHello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/jaxrpcinjection/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/jaxrpcinjection/client/Client.java
index 4688b08..369f484 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/jaxrpcinjection/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/jaxrpcinjection/client/Client.java
@@ -22,7 +22,7 @@
 import javax.xml.namespace.QName;
 import javax.xml.rpc.Stub;
 import javax.xml.rpc.Service;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 import servlet.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/client/Client.java
index 0c2f3b5..e71362b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.example.hello.HelloService;
 import com.example.hello.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/endpoint/Hello.java
index d628903..d49f158 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/libdependent/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 import outsidepkg.RetVal;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/client/Client.java
index 03c30b3..987d857 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/endpoint/Hello.java
index 92c9f3f..f2ecc93 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/endpoint/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public class Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/webclient/Client.java
index 8ead502..e2ce5da 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/mappedname/webclient/Client.java
@@ -21,8 +21,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/mbyte/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/mbyte/endpoint/Hello.java
index 5e714f4..a00d18a 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/mbyte/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/mbyte/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Hello",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java
index 9821bf0..3778091 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/endpoint/Hello.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 
 @WebService
 public class Hello {
@@ -26,7 +26,7 @@
     @Resource WebServiceContext wsc;
 
     public String sayHello(String param) {
-        javax.xml.ws.handler.MessageContext m = wsc.getMessageContext();
+        jakarta.xml.ws.handler.MessageContext m = wsc.getMessageContext();
         if(m == null)
             return "WebService Context injection failed";
         if(wsc != null)
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java
index 5ea3624..675e989 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/msgctxt/webclient/Client.java
@@ -21,8 +21,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/endpoint/SubtractNumbersImpl.java
index 34a0642..dc8a230 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService (serviceName="junkjunkjunk", portName="SubtractNumbersPortType", endpointInterface="endpoint.SubtractNumbersPortType")
+@jakarta.jws.WebService (serviceName="junkjunkjunk", portName="SubtractNumbersPortType", endpointInterface="endpoint.SubtractNumbersPortType")
 public class SubtractNumbersImpl implements SubtractNumbersPortType {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/webclient/Client.java
index 55da128..761f980 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/mtom/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/client/Client.java
index 2112bd9..f35cddb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/Hello1Impl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/Hello1Impl.java
index 1be5b90..a551c23 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/Hello1Impl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/Hello1Impl.java
@@ -25,9 +25,9 @@
 
 // Service Implementation Class - as outlined in JAX-RPC Specification
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
-@javax.jws.WebService(
+@jakarta.jws.WebService(
     serviceName="HttpTestService",
     endpointInterface="service.Hello1",
     portName="Hello1Port",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/HelloImpl.java
index cc3bf90..82f4efe 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/multiport/service/HelloImpl.java
@@ -25,9 +25,9 @@
 
 // Service Implementation Class - as outlined in JAX-RPC Specification
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
-@javax.jws.WebService(
+@jakarta.jws.WebService(
     serviceName="HttpTestService",
     endpointInterface="service.Hello",
     portName="HelloPort",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/endpoint/Hello.java
index 7c48d53..24a78d1 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/endpoint/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public class Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/webclient/Client.java
index 2c58b8d..55c1cec 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname/webclient/Client.java
@@ -21,8 +21,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/endpoint/Hello2.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/endpoint/Hello2.java
index 0770bab..4aef922 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/endpoint/Hello2.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/endpoint/Hello2.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
     name="Hello",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/webclient/Client.java
index 49d5ac9..16536de 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/noname2/webclient/Client.java
@@ -21,8 +21,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/client/Client.java
index 4515283..0f67fd2 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.example.hello.HelloService;
 import com.example.hello.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/endpoint/Hello.java
index 1cdf3b8..2e0e0ae 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/nowebxml/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Hello",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/endpoint/Hello.java
index ab5afae..318a262 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/endpoint/Hello.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService
 public class Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/webclient/Client.java
index 6907dc1..099e3e2 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/oneway/webclient/Client.java
@@ -21,8 +21,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/client/Client.java
index f3292e0..c270648 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.example.hello.HelloService;
 import com.example.hello.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/endpoint/Hello.java
index 9ea1682..58f2336 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/pkgedwarservice/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Hello",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/postconstruct/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/postconstruct/webclient/Client.java
index fdec9d8..5cd8e35 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/postconstruct/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/postconstruct/webclient/Client.java
@@ -21,8 +21,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/appclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/appclient/Client.java
index 33ab43c..39c1b93 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/appclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/appclient/Client.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/endpoint/AddNumbersImpl.java
index 501cc53..e7bda7c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/endpoint/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService (wsdlLocation="WEB-INF/wsdl/AddNumbers.wsdl", serviceName="AddNumbersService", targetNamespace="http://duke.org", portName="AddNumbersPortType", endpointInterface="endpoint.AddNumbersPortType")
+@jakarta.jws.WebService (wsdlLocation="WEB-INF/wsdl/AddNumbers.wsdl", serviceName="AddNumbersService", targetNamespace="http://duke.org", portName="AddNumbersPortType", endpointInterface="endpoint.AddNumbersPortType")
 public class AddNumbersImpl implements AddNumbersPortType {
     
     public int addNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/webclient/Client.java
index 518f816..2c0b5a0 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/prepkged-svc-1/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/client/Client.java
index faaa3b4..37ed2af 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.jaxws.HelloImplService;
 import endpoint.jaxws.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/endpoint/HelloImpl.java
index f2dac26..2ba99f5 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider-ejbinweb/endpoint/HelloImpl.java
@@ -17,16 +17,16 @@
 package endpoint;
 
 import java.io.*;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceProvider;
 import javax.ejb.Stateless;
 
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.ws.WebServiceException;
 
 
 import endpoint.jaxws.*;
@@ -39,14 +39,14 @@
     private int combo;
     private int bodyIndex;
 
-    public javax.xml.bind.JAXBContext getJAXBContext() {
+    public jakarta.xml.bind.JAXBContext getJAXBContext() {
         return jaxbContext;
     }
 
-    private static javax.xml.bind.JAXBContext createJAXBContext() {
+    private static jakarta.xml.bind.JAXBContext createJAXBContext() {
         try {
-            return javax.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
-        } catch (javax.xml.bind.JAXBException e) {
+            return jakarta.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
+        } catch (jakarta.xml.bind.JAXBException e) {
             throw new WebServiceException(e.getMessage(), e);
         }
     }
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/client/Client.java
index faaa3b4..37ed2af 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.jaxws.HelloImplService;
 import endpoint.jaxws.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/endpoint/HelloImpl.java
index b6694f5..d2f83c7 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/provider/endpoint/HelloImpl.java
@@ -18,19 +18,19 @@
 
 import java.io.*;
 import java.util.Map;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.Service	;	
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.ServiceMode;
+import jakarta.xml.ws.Service	;	
+import jakarta.xml.soap.SOAPMessage;
 import javax.ejb.Stateless;
 
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.ws.WebServiceException;
 
 
 import endpoint.jaxws.*;
@@ -42,14 +42,14 @@
     private int combo;
     private int bodyIndex;
     
-    public javax.xml.bind.JAXBContext getJAXBContext(){
+    public jakarta.xml.bind.JAXBContext getJAXBContext(){
         return jaxbContext;
     }
     
-    private static javax.xml.bind.JAXBContext createJAXBContext(){
+    private static jakarta.xml.bind.JAXBContext createJAXBContext(){
         try{
-            return javax.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
-        }catch(javax.xml.bind.JAXBException e){
+            return jakarta.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
+        }catch(jakarta.xml.bind.JAXBException e){
             throw new WebServiceException(e.getMessage(), e);
         }
     }
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/client/Client.java
index d29cf2f..a5a4a01 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.jaxws.HelloImplService;
 import endpoint.jaxws.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/HelloImpl.java
index c1490ca..174d8ca 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/HelloImpl.java
@@ -18,19 +18,19 @@
 
 import java.io.*;
 import java.util.Map;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.Service	;	
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.ServiceMode;
+import jakarta.xml.ws.Service	;	
+import jakarta.xml.soap.SOAPMessage;
 import javax.ejb.Stateless;
 
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.ws.WebServiceException;
 
 
 import endpoint.jaxws.*;
@@ -43,14 +43,14 @@
     private int combo;
     private int bodyIndex;
     
-    public javax.xml.bind.JAXBContext getJAXBContext(){
+    public jakarta.xml.bind.JAXBContext getJAXBContext(){
         return jaxbContext;
     }
     
-    private static javax.xml.bind.JAXBContext createJAXBContext(){
+    private static jakarta.xml.bind.JAXBContext createJAXBContext(){
         try{
-            return javax.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
-        }catch(javax.xml.bind.JAXBException e){
+            return jakarta.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
+        }catch(jakarta.xml.bind.JAXBException e){
             throw new WebServiceException(e.getMessage(), e);
         }
     }
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/TestHandler.java
index 41508fb..c4946cc 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/providerhandler/endpoint/TestHandler.java
@@ -22,10 +22,10 @@
 import javax.annotation.Resource;
 import javax.annotation.PostConstruct;
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/client/Client.java
index 85dc13c..b4b3356 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/client/Client.java
@@ -33,10 +33,10 @@
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.namespace.QName;
-import javax.xml.ws.Service;
-import javax.xml.ws.Dispatch;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.Dispatch;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.http.HTTPBinding;
 import java.io.ByteArrayOutputStream;
 import java.util.Properties;
 import java.util.Map;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/endpoint/AddNumbersImpl.java
index 4d25ecc..629ff59 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful-2/endpoint/AddNumbersImpl.java
@@ -22,15 +22,15 @@
 import javax.annotation.Resource;
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.Service;
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.http.HTTPException;
-import javax.xml.ws.http.HTTPBinding;
-import javax.xml.ws.BindingType;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.ServiceMode;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.http.HTTPException;
+import jakarta.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.BindingType;
 
 @WebServiceProvider
 @BindingType(value=HTTPBinding.HTTP_BINDING)
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/client/Client.java
index 2316410..7fd67de 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/endpoint/AddNumbersImpl.java
index 4d25ecc..629ff59 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/restful/endpoint/AddNumbersImpl.java
@@ -22,15 +22,15 @@
 import javax.annotation.Resource;
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.Service;
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.http.HTTPException;
-import javax.xml.ws.http.HTTPBinding;
-import javax.xml.ws.BindingType;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.ServiceMode;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.http.HTTPException;
+import jakarta.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.BindingType;
 
 @WebServiceProvider
 @BindingType(value=HTTPBinding.HTTP_BINDING)
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/appclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/appclient/Client.java
index 6478cee..1154d3e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/appclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/appclient/Client.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/endpoint/AddNumbersImpl.java
index 6fa9f29..374f5bd 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/soap12/endpoint/AddNumbersImpl.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-@javax.xml.ws.BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
-@javax.jws.WebService (wsdlLocation="WEB-INF/wsdl/AddNumbers.wsdl", serviceName="AddNumbersService", targetNamespace="http://duke.org", portName="AddNumbersPort", endpointInterface="endpoint.AddNumbersPortType")
+@jakarta.xml.ws.BindingType(jakarta.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
+@jakarta.jws.WebService (wsdlLocation="WEB-INF/wsdl/AddNumbers.wsdl", serviceName="AddNumbersService", targetNamespace="http://duke.org", portName="AddNumbersPort", endpointInterface="endpoint.AddNumbersPortType")
 public class AddNumbersImpl implements AddNumbersPortType {
     
     public int addNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/ejb_endpoint/WSHelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/ejb_endpoint/WSHelloEJB.java
index d820e3e..2849f57 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/ejb_endpoint/WSHelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/ejb_endpoint/WSHelloEJB.java
@@ -16,7 +16,7 @@
 
 package ejb_endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/servlet_endpoint/ServletHello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/servlet_endpoint/ServletHello.java
index 0bc1988..79b0725 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/servlet_endpoint/ServletHello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/soaptcp/servlet_endpoint/ServletHello.java
@@ -16,7 +16,7 @@
 
 package servlet_endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public class ServletHello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/SubtractNumbersImpl.java
index 06cf4d8..659c48e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService (serviceName="junkjunkjunk", endpointInterface="endpoint.SubtractNumbersPortType")
+@jakarta.jws.WebService (serviceName="junkjunkjunk", endpointInterface="endpoint.SubtractNumbersPortType")
 public class SubtractNumbersImpl implements SubtractNumbersPortType {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/TestHandler.java
index 2d47d81..9ffc041 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/endpoint/TestHandler.java
@@ -20,10 +20,10 @@
 import java.util.Set;
 
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 import javax.annotation.Resource;
 import javax.annotation.PostConstruct;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/webclient/Client.java
index 9735a0e..95f597e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-1/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/endpoint/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/endpoint/TestHandler.java
index 582e3af..891a8b4 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/endpoint/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/endpoint/TestHandler.java
@@ -22,10 +22,10 @@
 import javax.annotation.Resource;
 import javax.annotation.PostConstruct;
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/webclient/Client.java
index dd9d3de..65cebee 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-2/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/endpoint/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/endpoint/TestHandler.java
index 9a525ed..2de4c99 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/endpoint/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/endpoint/TestHandler.java
@@ -20,10 +20,10 @@
 import java.util.Set;
 
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/webclient/Client.java
index eca56cf..894f360 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-3/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/endpoint/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/endpoint/TestHandler.java
index 582e3af..891a8b4 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/endpoint/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/endpoint/TestHandler.java
@@ -22,10 +22,10 @@
 import javax.annotation.Resource;
 import javax.annotation.PostConstruct;
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/webclient/Client.java
index c3ff35b..a9e30f3 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/svchandler-4/webclient/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/client/Client.java
index 416c0ca..00a2aaa 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.example.hello.HelloService;
 import com.example.hello.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/endpoint/Hello.java
index 8c6f018..c5727b2 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/warservice/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Hello",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-cobundle/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-cobundle/webclient/Client.java
index 16f5266..4e82b88 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-cobundle/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-cobundle/webclient/Client.java
@@ -21,8 +21,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 import service.*;
 
@@ -31,7 +31,7 @@
  */
 public class Client extends HttpServlet {
 
-    @javax.xml.ws.WebServiceRef
+    @jakarta.xml.ws.WebServiceRef
     SubtractNumbersService service;
 
     public void doGet(HttpServletRequest req, HttpServletResponse resp)
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/endpoint/SubtractNumbersImpl.java
index 77bda18..4d63392 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService
+@jakarta.jws.WebService
 public class SubtractNumbersImpl  {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/webclient/Client.java
index 4827059..539ccc2 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webserviceref-lookup/webclient/Client.java
@@ -21,16 +21,16 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(name="foo/bar" )
+        @jakarta.xml.ws.WebServiceRef(name="foo/bar" )
         @Addressing 
         SubtractNumbersService service;
 
-        @javax.xml.ws.WebServiceRef(lookup="java:comp/env/foo/bar")
+        @jakarta.xml.ws.WebServiceRef(lookup="java:comp/env/foo/bar")
         SubtractNumbersService service2;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp) 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/client/Client.java
index 9c1123e..70a6d40 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/client/Client.java
@@ -16,8 +16,8 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRefs;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRefs;
+import jakarta.xml.ws.WebServiceRef;
 
 import servlet_endpoint.ServletHelloService;
 import servlet_endpoint.ServletHello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHello.java
index 6f40c20..73d3a54 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHello.java
@@ -16,7 +16,7 @@
 
 package ejb_endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public interface WSHello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHelloEJB.java
index 4b0bdc5..0cd2b3e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/ejb_endpoint/WSHelloEJB.java
@@ -16,7 +16,7 @@
 
 package ejb_endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService(endpointInterface="ejb_endpoint.WSHello")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/servlet_endpoint/ServletHello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/servlet_endpoint/ServletHello.java
index 0bc1988..79b0725 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/servlet_endpoint/ServletHello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservicerefs/servlet_endpoint/ServletHello.java
@@ -16,7 +16,7 @@
 
 package servlet_endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public class ServletHello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/endpoint/SubtractNumbersImpl.java
index 77bda18..4d63392 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService
+@jakarta.jws.WebService
 public class SubtractNumbersImpl  {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/webclient/Client.java
index 2c9765d..2d0d42a 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-2/webclient/Client.java
@@ -21,12 +21,12 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(name="foo/bar" ,value =SubtractNumbersService.class)
+        @jakarta.xml.ws.WebServiceRef(name="foo/bar" ,value =SubtractNumbersService.class)
        @Addressing (enabled=false)
         //@Addressing 
         SubtractNumbersImpl port;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/appclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/appclient/Client.java
index 600f1b7..97bd436 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/appclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/appclient/Client.java
@@ -16,10 +16,10 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.soap.*;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/endpoint/AddNumbersImpl.java
index 6fa9f29..374f5bd 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing-appclient/endpoint/AddNumbersImpl.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-@javax.xml.ws.BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
-@javax.jws.WebService (wsdlLocation="WEB-INF/wsdl/AddNumbers.wsdl", serviceName="AddNumbersService", targetNamespace="http://duke.org", portName="AddNumbersPort", endpointInterface="endpoint.AddNumbersPortType")
+@jakarta.xml.ws.BindingType(jakarta.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
+@jakarta.jws.WebService (wsdlLocation="WEB-INF/wsdl/AddNumbers.wsdl", serviceName="AddNumbersService", targetNamespace="http://duke.org", portName="AddNumbersPort", endpointInterface="endpoint.AddNumbersPortType")
 public class AddNumbersImpl implements AddNumbersPortType {
     
     public int addNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/endpoint/SubtractNumbersImpl.java
index 77bda18..4d63392 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService
+@jakarta.jws.WebService
 public class SubtractNumbersImpl  {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/webclient/Client.java
index b88f36e..5fbce84 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-addressing/webclient/Client.java
@@ -21,12 +21,12 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(SubtractNumbersService.class)
+        @jakarta.xml.ws.WebServiceRef(SubtractNumbersService.class)
        //@Addressing (required = true,enabled=true ,responses=AddressingFeature.Responses.NON_ANONYMOUS)
         //@Addressing 
         SubtractNumbersImpl port;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/endpoint/SubtractNumbersImpl.java
index a3aac5a..8d10efd 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService ;
+import jakarta.jws.WebService ;
 
 @WebService(
     portName="SubtractNumbersPortType",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/webclient/Client.java
index ad3a10f..2f8df3c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-clientdds/webclient/Client.java
@@ -21,12 +21,12 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
-        //@javax.xml.ws.WebServiceRef(SubtractNumbersService.class)
+        //@jakarta.xml.ws.WebServiceRef(SubtractNumbersService.class)
        //@Addressing (required = true,enabled=true ,responses=AddressingFeature.Responses.NON_ANONYMOUS)
         //@Addressing 
         SubtractNumbersPortType port;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/endpoint/SubtractNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/endpoint/SubtractNumbersImpl.java
index 77bda18..4d63392 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/endpoint/SubtractNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/endpoint/SubtractNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-@javax.jws.WebService
+@jakarta.jws.WebService
 public class SubtractNumbersImpl  {
     
     public int subtractNumbers (int number1, int number2) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/webclient/Client.java
index 5d9a8b4..d991949 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/webservices13-respectbinding/webclient/Client.java
@@ -21,12 +21,12 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(SubtractNumbersService.class)
+        @jakarta.xml.ws.WebServiceRef(SubtractNumbersService.class)
        //@Addressing (required = true,enabled=true ,responses=AddressingFeature.Responses.NON_ANONYMOUS)
         //@Addressing 
         SubtractNumbersImpl port;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/endpoint/Hello.java
index 0d7eabc..c15212b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/endpoint/Hello.java
@@ -16,12 +16,12 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 import javax.servlet.ServletContext;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.WebServiceContext;
+import jakarta.xml.ws.handler.MessageContext;
 
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/webclient/Client.java
index a10c6a2..2a43347 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsctxt/webclient/Client.java
@@ -21,12 +21,12 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(HelloService.class)
+        @jakarta.xml.ws.WebServiceRef(HelloService.class)
         Hello port;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp) 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/client/Client.java
index 391484e..e544de5 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/service/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/service/HelloImpl.java
index 6946d87..a93d8d1 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/service/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/annotations/wsdltojava/service/HelloImpl.java
@@ -25,9 +25,9 @@
 
 // Service Implementation Class - as outlined in JAX-RPC Specification
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
-@javax.jws.WebService(
+@jakarta.jws.WebService(
     serviceName="HttpTestService",
     endpointInterface="service.Hello",
     portName="HelloPort",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/client/Client.java
index 2103218..b92f35b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/client/Client.java
@@ -20,9 +20,9 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.AsyncHandler;
+import jakarta.xml.ws.Response;
 
 import endpoint.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/endpoint/AddNumbersImpl.java
index da197b3..a20f8ed 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/async/endpoint/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/ejb/HelloEJB.java
index db7df1c..6faea2c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/ejb/HelloEJB.java
@@ -21,9 +21,9 @@
 import java.util.concurrent.Future;
 
 import javax.ejb.Stateless;
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.AsyncHandler;
+import jakarta.xml.ws.Response;
 
 import endpoint.SayHelloResponse;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/endpoint/WebServiceEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/endpoint/WebServiceEJB.java
index a4b6fe4..a6aeb45 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/endpoint/WebServiceEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/asyncejbclient/endpoint/WebServiceEJB.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/client/Client.java
index ec35e6f..3a84ec3 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import java.math.BigInteger;
 import endpoint.*;
 import java.util.*;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/endpoint/CustomerManager.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/endpoint/CustomerManager.java
index 2cbb7ee..bc9115c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/endpoint/CustomerManager.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/bigint/endpoint/CustomerManager.java
@@ -18,7 +18,7 @@
 
 import java.math.BigInteger;
 import java.util.*;
-import javax.jws.*;
+import jakarta.jws.*;
 import javax.ejb.*;
 import javax.persistence.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/client/Client.java
index efae8e7..7abf638 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/dependencynoinjection/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/ejb/HelloEJB.java
index 89adf0b..f29a15f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/ejb/HelloEJB.java
@@ -17,7 +17,7 @@
 package ejb;
 
 import javax.ejb.Stateless;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.WebServiceEJBService;
 import endpoint.WebServiceEJB;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/endpoint/WebServiceEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/endpoint/WebServiceEJB.java
index a4b6fe4..a6aeb45 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/endpoint/WebServiceEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbclient/endpoint/WebServiceEJB.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloEjb.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloEjb.java
index 4ae4e61..86a717c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloEjb.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloEjb.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.ejb.SessionContext;
 import javax.annotation.Resource;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloWS.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloWS.java
index 04dad33..1b4927e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloWS.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/endpoint/HelloWS.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/webclient/Client.java
index b93c80c..1bda942 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbservletwebservicesinwar/webclient/Client.java
@@ -22,14 +22,14 @@
 import java.io.PrintWriter;
 import ejbclient.*;
 import webclient.*;
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(ejbclient.HelloEjbService.class)
+        @jakarta.xml.ws.WebServiceRef(ejbclient.HelloEjbService.class)
         ejbclient.Hello hiport1;
 
-    @javax.xml.ws.WebServiceRef(webclient.HelloService.class)
+    @jakarta.xml.ws.WebServiceRef(webclient.HelloService.class)
             webclient.Hello hiport2;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp) 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/endpoint/Hello.java
index 8a26e59..cc86c72 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.annotation.Resource;
 import javax.ejb.SessionContext;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/webclient/Client.java
index 11f79c5..c73bd01 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-2/webclient/Client.java
@@ -21,11 +21,11 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(HelloService.class)
+        @jakarta.xml.ws.WebServiceRef(HelloService.class)
         Hello hiport;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp) 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/endpoint/Hello.java
index 0d18621..2e855f2 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/endpoint/Hello.java
@@ -16,11 +16,11 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.annotation.Resource;
 import javax.ejb.SessionContext;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 
 
 @javax.ejb.Stateless
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/webclient/Client.java
index 11f79c5..c73bd01 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-3/webclient/Client.java
@@ -21,11 +21,11 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(HelloService.class)
+        @jakarta.xml.ws.WebServiceRef(HelloService.class)
         Hello hiport;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp) 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/endpoint/Hello.java
index c0dd02f..158c11b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.annotation.Resource;
 import javax.ejb.SessionContext;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/webclient/Client.java
index 11f79c5..c73bd01 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-interceptor/webclient/Client.java
@@ -21,11 +21,11 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(HelloService.class)
+        @jakarta.xml.ws.WebServiceRef(HelloService.class)
         Hello hiport;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp) 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/endpoint/Hello.java
index a2b86c4..f8f3489 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.annotation.Resource;
 import javax.ejb.SessionContext;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/webclient/Client.java
index 11f79c5..c73bd01 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar-sessioncontext/webclient/Client.java
@@ -21,11 +21,11 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(HelloService.class)
+        @jakarta.xml.ws.WebServiceRef(HelloService.class)
         Hello hiport;
 
        public void doGet(HttpServletRequest req, HttpServletResponse resp) 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar/endpoint/Hello.java
index 2a61d1e..1a9944f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwebservicesinwar/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.ejb.SessionContext;
 import javax.annotation.Resource;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwsinwarwithwsdl/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwsinwarwithwsdl/endpoint/Hello.java
index 87191d3..bfbf75c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwsinwarwithwsdl/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/ejbwsinwarwithwsdl/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.ejb.SessionContext;
 import javax.annotation.Resource;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/client/Client.java
index 77823f1..ac6e3bd 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/endpoint/HelloImpl.java
index 5e51686..c830f08 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/exception/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/client/Client.java
index 6ce187b..0a1ed84 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/invalidmethodinjection/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/client/Client.java
index c436f8d..9995186 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/client/Client.java
@@ -20,9 +20,9 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.AsyncHandler;
+import jakarta.xml.ws.Response;
 
 import endpoint.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/endpoint/HelloImpl.java
index 518d564..9192c67 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent-2/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 import outsidepkg.RetVal;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/client/Client.java
index 548c5da..dadba66 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/client/Client.java
@@ -20,9 +20,9 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.AsyncHandler;
+import jakarta.xml.ws.Response;
 
 import endpoint.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/endpoint/HelloImpl.java
index 518d564..9192c67 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/libdependent/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 import outsidepkg.RetVal;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/ejb/HelloEJB.java
index 89adf0b..f29a15f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/ejb/HelloEJB.java
@@ -17,7 +17,7 @@
 package ejb;
 
 import javax.ejb.Stateless;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.WebServiceEJBService;
 import endpoint.WebServiceEJB;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/endpoint/WebServiceEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/endpoint/WebServiceEJB.java
index 85796c7..33f2651 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/endpoint/WebServiceEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/localremoteejbwebservice/endpoint/WebServiceEJB.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.*;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/client/Client.java
index ad6a557..9837456 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/endpoint/HelloImpl.java
index 9360ab3..b1f4a16 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/messagectxt/endpoint/HelloImpl.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 import javax.ejb.SessionContext;
 
 @WebService
@@ -32,7 +32,7 @@
     public String sayHello(String who) {
 	if(ejbsc != null) {
            System.out.println(ejbsc.getMessageContext());
-           if (ejbsc.getMessageContext() instanceof javax.xml.ws.handler.MessageContext){
+           if (ejbsc.getMessageContext() instanceof jakarta.xml.ws.handler.MessageContext){
               //System.out.println("YYYYY" +ejbsc.getMessageContext().getClass());
         	return "WebSvcTest-Hello " + who;
 }
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/client/Client.java
index f3d9ac1..1818949 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/methodinjection/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/client/Client.java
index 10d87ea..d455c3a 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloEJBService;
 import endpoint.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/Hello.java
index b8657e9..dd4b642 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public interface Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/HelloEJB.java
index f6bd0d2..d351616 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxinterceptor/endpoint/HelloEJB.java
@@ -18,11 +18,11 @@
 
 import java.util.Map;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 
 import javax.interceptor.AroundInvoke;
 import javax.interceptor.InvocationContext;
@@ -46,8 +46,8 @@
             //remove once bug is fixed
             Exception e = new Exception();
             e.printStackTrace();
-            if (invCtx.getContextData() instanceof javax.xml.ws.handler.MessageContext){
-                System.out.println("ContextDataMap is an instance of javax.xml.ws.handler.MessageContext ");
+            if (invCtx.getContextData() instanceof jakarta.xml.ws.handler.MessageContext){
+                System.out.println("ContextDataMap is an instance of jakarta.xml.ws.handler.MessageContext ");
 
                 return invCtx.proceed();
            } else {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/client/Client.java
index ad6a557..9837456 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/endpoint/HelloImpl.java
index 0567991..3311b8d 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/msgctxt/endpoint/HelloImpl.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 
 @WebService
 @Stateless
@@ -29,7 +29,7 @@
 
     public String sayHello(String who) {
 	System.out.println("EJB WSCTXT wsc = " + ejbsc);
-	javax.xml.ws.handler.MessageContext m = ejbsc.getMessageContext();
+	jakarta.xml.ws.handler.MessageContext m = ejbsc.getMessageContext();
 	if(m == null)
 		return "WebService Context injection failed";
 	if(ejbsc != null)
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/client/Client.java
index 8761c70..2015dec 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/Hello1Impl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/Hello1Impl.java
index bf2e8d3..12808a9 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/Hello1Impl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/Hello1Impl.java
@@ -25,10 +25,10 @@
 
 // Service Implementation Class - as outlined in JAX-RPC Specification
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @javax.ejb.Stateless
-@javax.jws.WebService(
+@jakarta.jws.WebService(
     serviceName="HttpTestService",
     endpointInterface="service.Hello1",
     portName="Hello1Port",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/HelloImpl.java
index be1f465..471cecf 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/multiport/service/HelloImpl.java
@@ -25,10 +25,10 @@
 
 // Service Implementation Class - as outlined in JAX-RPC Specification
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @javax.ejb.Stateless
-@javax.jws.WebService(
+@jakarta.jws.WebService(
     serviceName="HttpTestService",
     endpointInterface="service.Hello",
     portName="HelloPort",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/client/Client.java
index 5180b5b..188105e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/nointf/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/client/Client.java
index 4922a0c..29c4421 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloEJBService;
 import endpoint.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/Hello.java
index b8657e9..dd4b642 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public interface Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/HelloEJB.java
index e7b3cce..37db4a6 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/noname/endpoint/HelloEJB.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService(endpointInterface="endpoint.Hello")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/client/Client.java
index 4ff80da..5deb6d2 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloEJBService;
 import endpoint.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/Hello.java
index 9952e92..01cef46 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/Hello.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService
 public interface Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/HelloEJB.java
index 432a394..3a971e9 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/oneway/endpoint/HelloEJB.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService(endpointInterface="endpoint.Hello")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/client/Client.java
index 907c3a0..7fd8907 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portdependencynoinjection/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/client/Client.java
index 9b30662..7fa7620 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import ejb.GatewayImplService;
 import ejb.GatewayImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/ejb/GatewayImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/ejb/GatewayImpl.java
index 318023b..974d83c 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/ejb/GatewayImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/ejb/GatewayImpl.java
@@ -16,11 +16,11 @@
 
 package ejb;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.ejb.Stateless;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portejbclient/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/client/Client.java
index de53997..0c0651e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portfieldinjection/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/client/Client.java
index 4e7c5b4..6706171 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/portmethodinjection/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/client/Client.java
index 9543838..d265bb5 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.jaxws.HelloImplService;
 import endpoint.jaxws.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/endpoint/HelloImpl.java
index 0a58474..b194629 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/provider/endpoint/HelloImpl.java
@@ -18,19 +18,19 @@
 
 import java.io.*;
 import java.util.Map;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.Service	;	
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.ServiceMode;
+import jakarta.xml.ws.Service	;	
+import jakarta.xml.soap.SOAPMessage;
 import javax.ejb.Stateless;
 
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.ws.WebServiceException;
 
 
 import endpoint.jaxws.*;
@@ -44,14 +44,14 @@
     private int combo;
     private int bodyIndex;
     
-    public javax.xml.bind.JAXBContext getJAXBContext(){
+    public jakarta.xml.bind.JAXBContext getJAXBContext(){
         return jaxbContext;
     }
     
-    private static javax.xml.bind.JAXBContext createJAXBContext(){
+    private static jakarta.xml.bind.JAXBContext createJAXBContext(){
         try{
-            return javax.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
-        }catch(javax.xml.bind.JAXBException e){
+            return jakarta.xml.bind.JAXBContext.newInstance(ObjectFactory.class);
+        }catch(jakarta.xml.bind.JAXBException e){
             throw new WebServiceException(e.getMessage(), e);
         }
     }
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/client/Client.java
index 889daf7..f6d7eca 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/endpoint/AddNumbersImpl.java
index 82e236e..97c70ba 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/restful-ejb/endpoint/AddNumbersImpl.java
@@ -22,15 +22,15 @@
 import javax.annotation.Resource;
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.Service;
-import javax.xml.ws.ServiceMode;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.http.HTTPException;
-import javax.xml.ws.http.HTTPBinding;
-import javax.xml.ws.BindingType;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.ServiceMode;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.http.HTTPException;
+import jakarta.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.BindingType;
 import javax.ejb.Stateless;
 
 @WebServiceProvider
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/client/Client.java
index 9e78167..93137a5 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/client/Client.java
@@ -17,8 +17,8 @@
 package client;
 
 import java.util.Map;
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
@@ -63,8 +63,8 @@
                 if (username!=null && password!=null) {
                     BindingProvider bd = (BindingProvider) port;
                     Map<String, Object> requestContext = bd.getRequestContext();
-                    requestContext.put("javax.xml.ws.security.auth.username",username);
-                    requestContext.put("javax.xml.ws.security.auth.password",password);
+                    requestContext.put("jakarta.xml.ws.security.auth.username",username);
+                    requestContext.put("jakarta.xml.ws.security.auth.password",password);
                 }
                 
                 // @PermitAll invocation, it should always work
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/endpoint/HelloImpl.java
index e086057..8a0085e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/security/roles/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 import javax.annotation.security.RolesAllowed;
 import javax.annotation.security.DenyAll;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/client/Client.java
index 02332e8..03e9b67 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import ejb.GatewayImplService;
 import ejb.GatewayImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/ejb/GatewayImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/ejb/GatewayImpl.java
index e94c4b8..e7a1fd6 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/ejb/GatewayImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/ejb/GatewayImpl.java
@@ -16,11 +16,11 @@
 
 package ejb;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.ejb.Stateless;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/endpoint/HelloImpl.java
index dbb9d69..a71374b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/serviceejbclient/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/client/Client.java
index b358abf..daf2dee 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/endpoint/HelloImpl.java
index f4e5705..a495dc4 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/sessionctx/endpoint/HelloImpl.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 import javax.ejb.SessionContext;
 import java.security.Principal;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/client/Client.java
index ad49e70..8ceb062 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/client/Client.java
@@ -20,9 +20,9 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.AsyncHandler;
+import jakarta.xml.ws.Response;
 
 import endpoint.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/endpoint/HelloImpl.java
index 5887e9c..c4f2804 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/singleton/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Singleton;
 import outsidepkg.RetVal;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/client/Client.java
index 4f40d11..46618ec 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloEJBService;
 import endpoint.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/Hello.java
index b8657e9..dd4b642 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public interface Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/HelloEJB.java
index c447846..d0c8771 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/HelloEJB.java
@@ -16,12 +16,12 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService(endpointInterface="endpoint.Hello")
 @Stateless
-@javax.jws.HandlerChain(name="some name", file="META-INF/myhandler.xml")
+@jakarta.jws.HandlerChain(name="some name", file="META-INF/myhandler.xml")
 public class HelloEJB implements Hello {
 
     public String sayHello(String who) {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/TestHandler.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/TestHandler.java
index 41508fb..c4946cc 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/TestHandler.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/svchandler/endpoint/TestHandler.java
@@ -22,10 +22,10 @@
 import javax.annotation.Resource;
 import javax.annotation.PostConstruct;
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.handler.soap.SOAPHandler;
-import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.soap.*;
+import jakarta.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.soap.SOAPHandler;
+import jakarta.xml.ws.handler.soap.SOAPMessageContext;
+import jakarta.xml.soap.*;
 
 public class TestHandler implements SOAPHandler<SOAPMessageContext> {
     
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/endpoint/Hello.java
index c4edf73..4d30eb5 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/endpoint/Hello.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @javax.ejb.Stateless
 @WebService(
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/webclient/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/webclient/Client.java
index b6aa70c..e9d8aae 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/webclient/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsRef-webservice-features/webclient/Client.java
@@ -21,12 +21,12 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
-import javax.xml.ws.soap.*;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.soap.*;
 
 public class Client extends HttpServlet {
 
-        @javax.xml.ws.WebServiceRef(HelloService.class)
+        @jakarta.xml.ws.WebServiceRef(HelloService.class)
         @MTOM(enabled=true)
         @RespectBinding
         @Addressing (required = false,enabled=true)
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/client/Client.java
index 54380b3..89ad876 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/endpoint/HelloImpl.java
index c351006..0dc1359 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxt/endpoint/HelloImpl.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 import javax.ejb.SessionContext;
 
 @WebService
@@ -34,7 +34,7 @@
 	System.out.println("EJB WSCTXT wsc = " + ejbsc);
 	if(ejbsc != null) {
 System.out.println(ejbsc.getMessageContext());
-if (ejbsc.getMessageContext() instanceof javax.xml.ws.handler.MessageContext){
+if (ejbsc.getMessageContext() instanceof jakarta.xml.ws.handler.MessageContext){
 System.out.println("YYYYY" +ejbsc.getMessageContext().getClass());
 }
 else {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/client/Client.java
index 0e49e37..7c86441 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/client/Client.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.HelloEJBService;
 import endpoint.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/Hello.java
index b8657e9..dd4b642 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService
 public interface Hello {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/HelloEJB.java
index 0b9a462..fd61fdb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsctxtinterceptor/endpoint/HelloEJB.java
@@ -18,11 +18,11 @@
 
 import java.util.Map;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceContext;
 
 import javax.interceptor.AroundInvoke;
 import javax.interceptor.InvocationContext;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/client/Client.java
index 97d19bd..7e37fcf 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/client/Client.java
@@ -20,9 +20,9 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.AsyncHandler;
+import jakarta.xml.ws.Response;
 
 import endpoint.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/endpoint/AddNumbersImpl.java
index 49ee427..e502ee5 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/ejb_annotations/wsnameejbname/endpoint/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService(name="ThisShouldBeIgnored")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/client/Client.java
index 9d2cca5..6c589e8 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/client/Client.java
@@ -18,7 +18,7 @@
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 /**
  * @author Rama Pulavarthi
diff --git a/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/endpoint/AddNumbersImpl.java
index fde3084..436a76d 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/gf_dd/endpoint_address_uri/endpoint/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 /**
  * @author Lukas Jungmann
diff --git a/appserver/tests/appserv-tests/devtests/webservice/handler/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/handler/client/Client.java
index d2fa5f8..fb00f88 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/handler/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/handler/client/Client.java
@@ -22,7 +22,7 @@
 import javax.xml.namespace.QName;
 import javax.xml.rpc.Stub;
 import javax.xml.rpc.Service;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 import ejb.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jaxrpc-hello-web/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jaxrpc-hello-web/client/Client.java
index 679997f..90c5f6e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jaxrpc-hello-web/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jaxrpc-hello-web/client/Client.java
@@ -23,7 +23,7 @@
 import javax.xml.rpc.Stub;
 import helloservice.*;
 import javax.xml.rpc.Service;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
 */
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/client/SOAPWebConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/client/SOAPWebConsumer.java
index b59c2d2..449840b 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/client/SOAPWebConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/client/SOAPWebConsumer.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.example.calculator.CalculatorService;
 import com.example.calculator.Calculator;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
@@ -57,7 +57,7 @@
 
 	} catch(Exception e) {
 		//e.printStackTrace();
-		if(e instanceof javax.xml.ws.soap.SOAPFaultException) 
+		if(e instanceof jakarta.xml.ws.soap.SOAPFaultException) 
                 	stat.addStatus(testId, stat.FAIL);
 		else {
 	        	stat.addStatus(testId, stat.FAIL);
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/endpoint/Calculator.java
index c109a7c..a4da07d 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/bc_consumer_se_provider/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.*;
-import javax.jws.soap.SOAPBinding;
+import jakarta.jws.*;
+import jakarta.jws.soap.SOAPBinding;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/endpoint/Calculator.java
index 04ab7d8..fd53726 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/endpoint/Calculator.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.*;
+import jakarta.jws.*;
 import common.IncomeTaxDetails;
 import java.util.Hashtable;
-import javax.jws.soap.SOAPBinding;
+import jakarta.jws.soap.SOAPBinding;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/webclient/client/Client.java
index d8ebc43..8859575 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/bare_doc_literal/se_consumer_se_provider/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 //import common.IncomeTaxDetails;
 //import java.util.Hashtable;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/endpoint/Calculator.java
index 7553337..6951320 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/webclient/client/Client.java
index 2494f87..81b8d73 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/client/web/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/consumer/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/consumer/webclient/client/Client.java
index 84b42de..fbc291b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/consumer/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/consumer/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import endpoint.ejb.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/Hello.java
index eed68b7..23167eb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/ejb")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/HelloEJB.java
index e02fe3b..234cb66 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/ejb-jmsbc/provider/endpoint/ejb/HelloEJB.java
@@ -16,8 +16,8 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceRef;
 import javax.ejb.Stateless;
 
 @WebService(endpointInterface="endpoint.ejb.Hello", targetNamespace="http://endpoint/ejb")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/endpoint/Adder.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/endpoint/Adder.java
index d40d075..4fc103f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/endpoint/Adder.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/endpoint/Adder.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService(
     name="Adder",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/webclient/client/Client.java
index cfc14d4..65b868e 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/inout-sample/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.adder.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/endpoint/OneWay.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/endpoint/OneWay.java
index fb2a39e..f09b38b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/endpoint/OneWay.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/endpoint/OneWay.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService(
     name="OneWay",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/webclient/client/Client.java
index ffe2cb5..2f99d1b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/oneway/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.oneway.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/client/SOAPWebConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/client/SOAPWebConsumer.java
index 0cd865d..f9d5e69 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/client/SOAPWebConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/client/SOAPWebConsumer.java
@@ -16,13 +16,13 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
 import service.web.example.calculator.*;
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class SOAPWebConsumer {
     @WebServiceRef(wsdlLocation="http://localhost:8080/rpc-literal-bundled-wsdl-bc-consumer-se-provider/webservice/CalculatorService?WSDL")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/endpoint/Calculator.java
index ee659a1..69c9acc 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/bundled-wsdl/endpoint/Calculator.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.*;
-import javax.jws.soap.SOAPBinding;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.*;
+import jakarta.jws.soap.SOAPBinding;
 import common.IncomeTaxDetails;
 
 @WebService(
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/client/SOAPWebConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/client/SOAPWebConsumer.java
index 6a66a3b..c54716f 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/client/SOAPWebConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/client/SOAPWebConsumer.java
@@ -16,13 +16,13 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
 import service.web.example.calculator.*;
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 public class SOAPWebConsumer {
     @WebServiceRef(wsdlLocation="http://localhost:8080/rpc-literal-bundled-wsdl-bc-consumer-se-provider/webservice/CalculatorService?WSDL")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/endpoint/Calculator.java
index ee659a1..69c9acc 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/bc_consumer_sc_provider/wsdl-import/endpoint/Calculator.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.*;
-import javax.jws.soap.SOAPBinding;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.*;
+import jakarta.jws.soap.SOAPBinding;
 import common.IncomeTaxDetails;
 
 @WebService(
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/endpoint/Calculator.java
index 4b737f8..238dfd8 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/endpoint/Calculator.java
@@ -16,10 +16,10 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.*;
-import javax.jws.soap.SOAPBinding;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.*;
+import jakarta.jws.soap.SOAPBinding;
 import common.IncomeTaxDetails;
 
 @WebService(
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/webclient/client/Client.java
index 505e227..83bf7a3 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/bundled_wsdl/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 //import common.IncomeTaxDetails;
 //import java.util.Hashtable;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/endpoint/Calculator.java
index 30ffdd2..1c414ca 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/endpoint/Calculator.java
@@ -16,12 +16,12 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 import common.IncomeTaxDetails;
 import java.util.Hashtable;
-import javax.jws.soap.SOAPBinding;
+import jakarta.jws.soap.SOAPBinding;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/webclient/client/Client.java
index 505e227..83bf7a3 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/rpc_literal/se_consumer_se_provider/generated_wsdl/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 //import common.IncomeTaxDetails;
 //import java.util.Hashtable;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/Hello.java
index eed68b7..23167eb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/ejb")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/HelloEJB.java
index 8411a02..cb9da32 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/endpoint/ejb/HelloEJB.java
@@ -17,8 +17,8 @@
 package endpoint.ejb;
 
 import java.security.Principal;
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceRef;
 import javax.ejb.Stateless;
 import javax.ejb.SessionContext;
 import javax.annotation.Resource;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/webclient/client/Client.java
index a266286..5878654 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/security/jse_only/webclient/client/Client.java
@@ -20,7 +20,7 @@
 import java.io.PrintWriter;
 import java.security.Principal;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 
 import endpoint.ejb.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/Hi.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/Hi.java
index b438914..dbe07ce 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/Hi.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/Hi.java
@@ -16,7 +16,7 @@
 
 package endpoint.jaxws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/jaxws")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/HiEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/HiEJB.java
index 8ec870b..19259b1 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/HiEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_ejb/endpoint/jaxws/HiEJB.java
@@ -16,7 +16,7 @@
 
 package endpoint.jaxws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService(endpointInterface="endpoint.jaxws.Hi",targetNamespace="http://endpoint/jaxws")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/endpoint/Subtractor.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/endpoint/Subtractor.java
index 74bbc16..1b66b9d 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/endpoint/Subtractor.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/endpoint/Subtractor.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Subtractor",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/webclient/client/Client.java
index 215ed29..990d21c 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/another_servlet/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.subtractor.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/JAXWSClient.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/JAXWSClient.java
index 2a38e45..56b3216 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/JAXWSClient.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/JAXWSClient.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import endpoint.jaxws.HelloEJBService;
 import endpoint.jaxws.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumer.java
index c027645..7ccfee4 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumer.java
@@ -16,8 +16,8 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
 
 import endpoint.jaxws.HelloEJBService;
 import endpoint.jaxws.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumerNonHttpBC.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumerNonHttpBC.java
index bbbb7c4..b6f7fd1 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumerNonHttpBC.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/client/SOAPEjbConsumerNonHttpBC.java
@@ -16,8 +16,8 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
 
 import endpoint.jaxws.HelloEJBService;
 import endpoint.jaxws.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/Hello.java
index d954f71..fd4f6f0 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint.jaxws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/jaxws")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/HelloEJB.java
index 1a5c2f9..f79e075 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/endpoint/jaxws/HelloEJB.java
@@ -16,7 +16,7 @@
 
 package endpoint.jaxws;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService(endpointInterface="endpoint.jaxws.Hello", targetNamespace="http://endpoint/jaxws")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressClient.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressClient.java
index be14e32..6511b48 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressClient.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressClient.java
@@ -16,8 +16,8 @@
 
 package stressclient;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
 
 import endpoint.jaxws.HelloEJBService;
 import endpoint.jaxws.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressSOAPEjbConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressSOAPEjbConsumer.java
index 071837e..d0de694 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressSOAPEjbConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/ejb/hello/stressclient/StressSOAPEjbConsumer.java
@@ -16,8 +16,8 @@
 
 package stressclient;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
 
 import endpoint.jaxws.HelloEJBService;
 import endpoint.jaxws.Hello;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/JAXWSClient.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/JAXWSClient.java
index 068c925..8946243 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/JAXWSClient.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/JAXWSClient.java
@@ -16,7 +16,7 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 import com.example.calculator.CalculatorService;
 import com.example.calculator.Calculator;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumer.java
index 666f397..a9088d0 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumer.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.example.calculator.CalculatorService;
 import com.example.calculator.Calculator;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumerNonHttpBC.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumerNonHttpBC.java
index e0e7dfb..f336b8d 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumerNonHttpBC.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/client/SOAPWebConsumerNonHttpBC.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.example.calculator.CalculatorService;
 import com.example.calculator.Calculator;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/endpoint/Calculator.java
index 75b27d7..f59f430 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/server/web/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/endpoint/AddNumber.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/endpoint/AddNumber.java
index 8361038..840c6c9 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/endpoint/AddNumber.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/endpoint/AddNumber.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService(
     name="AddNumber",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/webclient/client/Client.java
index facf5e1..fa5fd08 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/add-numbers/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.addnumber.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/endpoint/Calculator.java
index 7553337..6951320 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/webclient/client/Client.java
index d1c310f..2a6c6da 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-client/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/client/SOAPWebConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/client/SOAPWebConsumer.java
index f18ec92..0b73c13 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/client/SOAPWebConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/client/SOAPWebConsumer.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.example.calculator.CalculatorService;
 import com.example.calculator.Calculator;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/endpoint/Calculator.java
index 75b27d7..f59f430 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/compApp-server/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/endpoint/EndpointMapping.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/endpoint/EndpointMapping.java
index 61ad5f1..6a8c037 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/endpoint/EndpointMapping.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/endpoint/EndpointMapping.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService(
     name="EndpointMapping",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/webclient/client/Client.java
index ffdd9dc..b2578bf 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.endpointmapping.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/endpoint/EndpointMappingConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/endpoint/EndpointMappingConsumer.java
index d59ad88..b8bd78b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/endpoint/EndpointMappingConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/endpoint/EndpointMappingConsumer.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="EndpointMappingConsumer",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/webclient/client/Client.java
index ad1c054..6d61707 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/endpoint_mapping_consumer/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.endpointmappingconsumer.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-ejb/src/java/entapp/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-ejb/src/java/entapp/ejb/HelloEJB.java
index 8f5c256..243baad 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-ejb/src/java/entapp/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-ejb/src/java/entapp/ejb/HelloEJB.java
@@ -26,9 +26,9 @@
 package entapp.ejb;
 
 import javax.ejb.Stateless;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
 
 /**
  *
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-war/src/java/entapp/web/HelloWeb.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-war/src/java/entapp/web/HelloWeb.java
index 15ab967..c1ea04b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-war/src/java/entapp/web/HelloWeb.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/EntApp/EntApp-war/src/java/entapp/web/HelloWeb.java
@@ -25,9 +25,9 @@
 
 package entapp.web;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
 
 /**
  *
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/client/Client.java
index 656138f..093f01e 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/service_unit/enterprise_app/client/Client.java
@@ -16,8 +16,8 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
 import entapp.ejb.*;
 import entapp.web.*;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/client/SOAPWebConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/client/SOAPWebConsumer.java
index 248aad8..c2fefe8 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/client/SOAPWebConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/client/SOAPWebConsumer.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.example.calculator.CalculatorService;
 import com.example.calculator.Calculator;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
@@ -57,7 +57,7 @@
 
 	} catch(Exception e) {
 		e.printStackTrace();
-		if(e instanceof javax.xml.ws.soap.SOAPFaultException) 
+		if(e instanceof jakarta.xml.ws.soap.SOAPFaultException) 
                 	stat.addStatus(testId, stat.PASS);
 		else {
 	        	stat.addStatus(testId,  stat.FAIL);
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/endpoint/Calculator.java
index d5f7c36..a279a2b 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/sm/bc_consumer_se_provider/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/endpoint/Calculator.java
index 633ebc9..dc0b90f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/endpoint/Calculator.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/webclient/client/Client.java
index 584d96c..e9b33c7 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumer/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/endpoint/Calculator.java
index 21f9f35..098fa9d 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/endpoint/Calculator.java
@@ -16,9 +16,9 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
+import jakarta.jws.Oneway;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/webclient/client/Client.java
index 06a8194..542581f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_consumerNprovider/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/client/SOAPWebConsumer.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/client/SOAPWebConsumer.java
index 0f407f6..c75060d 100755
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/client/SOAPWebConsumer.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/client/SOAPWebConsumer.java
@@ -16,9 +16,9 @@
 
 package client;
 
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.Service;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.BindingProvider;
 import com.example.calculator.CalculatorService;
 import com.example.calculator.Calculator;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/endpoint/Calculator.java
index ced9572..6d87634 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapfault/se_provider/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/consumer/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/consumer/webclient/client/Client.java
index 2494f87..81b8d73 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/consumer/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/consumer/webclient/client/Client.java
@@ -21,7 +21,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/provider/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/provider/endpoint/Calculator.java
index 7553337..6951320 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/provider/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/soapoverjms/provider/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 @WebService(
     name="Calculator",
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/endpoint/Calculator.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/endpoint/Calculator.java
index dc2f930..a9cd352 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/endpoint/Calculator.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/endpoint/Calculator.java
@@ -16,8 +16,8 @@
 
 package endpoint;
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 import javax.ejb.TransactionAttribute;
 import javax.ejb.TransactionAttributeType;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/webclient/client/Client.java
index 2efc31c..07ecc03 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only/webclient/client/Client.java
@@ -23,7 +23,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import service.web.example.calculator.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/Hello.java
index eed68b7..23167eb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/ejb")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/HelloEJB.java
index 6f259d7..8385d5f 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/endpoint/ejb/HelloEJB.java
@@ -16,8 +16,8 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceRef;
 import javax.ejb.Stateless;
 import javax.ejb.SessionContext;
 import javax.ejb.TransactionAttribute;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/webclient/client/Client.java
index 42ad08d..4243666 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit/webclient/client/Client.java
@@ -27,7 +27,7 @@
 import java.sql.*;
 import javax.sql.DataSource;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import endpoint.ejb.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/Hello.java
index eed68b7..23167eb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/ejb")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/HelloEJB.java
index 58a8593..d37d5ac 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/endpoint/ejb/HelloEJB.java
@@ -16,8 +16,8 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceRef;
 import javax.ejb.Stateless;
 import javax.ejb.SessionContext;
 import javax.ejb.TransactionAttribute;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/webclient/client/Client.java
index 61cb8d4..4f775ca 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbcommit1/webclient/client/Client.java
@@ -27,7 +27,7 @@
 import java.sql.*;
 import javax.sql.DataSource;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import endpoint.ejb.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/Hello.java
index eed68b7..23167eb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/ejb")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/HelloEJB.java
index 9e11297..55ee311 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/endpoint/ejb/HelloEJB.java
@@ -16,8 +16,8 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceRef;
 import javax.ejb.Stateless;
 import javax.ejb.SessionContext;
 import javax.ejb.TransactionAttribute;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/webclient/client/Client.java
index 9bd8543..e3e1cd4 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback/webclient/client/Client.java
@@ -27,7 +27,7 @@
 import java.sql.*;
 import javax.sql.DataSource;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import endpoint.ejb.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/Hello.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/Hello.java
index eed68b7..23167eb 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/Hello.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/Hello.java
@@ -16,7 +16,7 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 @WebService(
 targetNamespace="http://endpoint/ejb")
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/HelloEJB.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/HelloEJB.java
index 9408e5a..02dcd05 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/HelloEJB.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/endpoint/ejb/HelloEJB.java
@@ -16,8 +16,8 @@
 
 package endpoint.ejb;
 
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceRef;
 import javax.ejb.Stateless;
 import javax.ejb.SessionContext;
 import javax.ejb.TransactionAttribute;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/webclient/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/webclient/client/Client.java
index 2bff691..a4df847 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/webclient/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/jbi-serviceengine/transactions/jse_only_ejbrollback1/webclient/client/Client.java
@@ -27,7 +27,7 @@
 import java.sql.*;
 import javax.sql.DataSource;
 
-import javax.xml.ws.*;
+import jakarta.xml.ws.*;
 import endpoint.ejb.*;
 
 public class Client extends HttpServlet {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/mapping/j2w/signature/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/mapping/j2w/signature/client/Client.java
index 24964b1..80ca908 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/mapping/j2w/signature/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/mapping/j2w/signature/client/Client.java
@@ -20,7 +20,7 @@
 import java.util.*;
 import javax.naming.*;
 import javax.xml.rpc.Stub;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 import java.util.GregorianCalendar;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/client/Client.java
index 4200a79..872a7bf 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/client/Client.java
@@ -17,8 +17,8 @@
 package client;
 
 import java.util.Map;
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.BindingProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.xml.ws.BindingProvider;
 
 import endpoint.HelloImplService;
 import endpoint.HelloImpl;
diff --git a/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/endpoint/HelloImpl.java b/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/endpoint/HelloImpl.java
index a7392d1..6775acc 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/endpoint/HelloImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/security/ejb3_ssl_cacert/endpoint/HelloImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 
 @WebService
diff --git a/appserver/tests/appserv-tests/devtests/webservice/servlethandler/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/servlethandler/client/Client.java
index 3f79920..36fe9f5 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/servlethandler/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/servlethandler/client/Client.java
@@ -22,7 +22,7 @@
 import javax.xml.namespace.QName;
 import javax.xml.rpc.Stub;
 import javax.xml.rpc.Service;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 import servlet.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/simplefault/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/simplefault/client/Client.java
index 6eaec1e..94bb7c1 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/simplefault/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/simplefault/client/Client.java
@@ -22,7 +22,7 @@
 import javax.xml.namespace.QName;
 import javax.xml.rpc.Stub;
 import javax.xml.rpc.Service;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 import soapfault.ejb.*;
 
diff --git a/appserver/tests/appserv-tests/devtests/webservice/soapfaults/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/soapfaults/client/Client.java
index 54633c4..1a018ca 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/soapfaults/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/soapfaults/client/Client.java
@@ -20,7 +20,7 @@
 import java.util.*;
 import javax.naming.*;
 import javax.xml.rpc.Stub;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
 public class Client {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/client/Client.java
index 334d7a4..fcd3cb7 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/client/Client.java
@@ -18,7 +18,7 @@
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 /**
  * @author Rama Pulavarthi
diff --git a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/endpoint/AddNumbersImpl.java
index e2adfb9..80905a1 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/service_endpoint_address/endpoint/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 import javax.ejb.Stateless;
 /**
  * @author Rama Pulavarthi
diff --git a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/client/Client.java
index 0e23c52..cc331e3 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/client/Client.java
@@ -18,7 +18,7 @@
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 
 /**
  * @author Rama Pulavarthi
diff --git a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/endpoint/AddNumbersImpl.java b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/endpoint/AddNumbersImpl.java
index a021aef..cb4f788 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/endpoint/AddNumbersImpl.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/wls_dd/wsdl_exposed_false/endpoint/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package wls_dd.wsdl_exposed_false.endpoint;
 
-import javax.jws.WebService;
+import jakarta.jws.WebService;
 
 /**
  * @author Rama Pulavarthi
diff --git a/appserver/tests/appserv-tests/devtests/webservice/wsi/faultcode/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/wsi/faultcode/client/Client.java
index d7beedf..0950680 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/wsi/faultcode/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/wsi/faultcode/client/Client.java
@@ -20,7 +20,7 @@
 import java.util.*;
 import javax.naming.*;
 import javax.xml.rpc.Stub;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
 public class Client {
diff --git a/appserver/tests/appserv-tests/devtests/webservice/xsdany/client/Client.java b/appserver/tests/appserv-tests/devtests/webservice/xsdany/client/Client.java
index 95bed97..b3fab97 100644
--- a/appserver/tests/appserv-tests/devtests/webservice/xsdany/client/Client.java
+++ b/appserver/tests/appserv-tests/devtests/webservice/xsdany/client/Client.java
@@ -20,7 +20,7 @@
 import java.util.*;
 import javax.naming.*;
 import javax.xml.rpc.Stub;
-import javax.xml.soap.SOAPElement;
+import jakarta.xml.soap.SOAPElement;
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
 public class Client {
diff --git a/appserver/tests/embedded/maven-plugin/webservice/src/main/java/test/SimpleWebService.java b/appserver/tests/embedded/maven-plugin/webservice/src/main/java/test/SimpleWebService.java
index 7e0e9c5..6c23772 100644
--- a/appserver/tests/embedded/maven-plugin/webservice/src/main/java/test/SimpleWebService.java
+++ b/appserver/tests/embedded/maven-plugin/webservice/src/main/java/test/SimpleWebService.java
@@ -16,7 +16,7 @@
 
 package test;
 
-import javax.jws.*;
+import jakarta.jws.*;
 
 @WebService
 public class SimpleWebService {
diff --git a/appserver/tests/quicklook/wsit/JaxwsFromWsdl/src/jaxwsfromwsdl/server/AddNumbersImpl.java b/appserver/tests/quicklook/wsit/JaxwsFromWsdl/src/jaxwsfromwsdl/server/AddNumbersImpl.java
index 3d1f0b1..3ded0d6 100644
--- a/appserver/tests/quicklook/wsit/JaxwsFromWsdl/src/jaxwsfromwsdl/server/AddNumbersImpl.java
+++ b/appserver/tests/quicklook/wsit/JaxwsFromWsdl/src/jaxwsfromwsdl/server/AddNumbersImpl.java
@@ -16,7 +16,7 @@
 
 package jaxwsfromwsdl.server;
 
-@javax.jws.WebService (endpointInterface="jaxwsfromwsdl.server.AddNumbersPortType")
+@jakarta.jws.WebService (endpointInterface="jaxwsfromwsdl.server.AddNumbersPortType")
 public class AddNumbersImpl{
     
     /**
diff --git a/appserver/tests/quicklook/wsit/jsr109tester/src/fromjava/server/AddNumbers.java b/appserver/tests/quicklook/wsit/jsr109tester/src/fromjava/server/AddNumbers.java
index 9c70363..fbf5879 100644
--- a/appserver/tests/quicklook/wsit/jsr109tester/src/fromjava/server/AddNumbers.java
+++ b/appserver/tests/quicklook/wsit/jsr109tester/src/fromjava/server/AddNumbers.java
@@ -21,7 +21,7 @@
 /**
  * Simple Webservice to be deployed using jsr109
  */
-@javax.jws.WebService
+@jakarta.jws.WebService
 public class AddNumbers {
     
     public int addNumbers (int number1, int number2) {
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/ReceiveSOAPMessageWithJMS.java b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/ReceiveSOAPMessageWithJMS.java
index 8470d8b..c2e82ae 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/ReceiveSOAPMessageWithJMS.java
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/ReceiveSOAPMessageWithJMS.java
@@ -10,9 +10,9 @@
 
 package samples.jms.soaptojms;
 
-import javax.xml.soap.MessageFactory;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.soap.AttachmentPart;
+import jakarta.xml.soap.MessageFactory;
+import jakarta.xml.soap.SOAPMessage;
+import jakarta.xml.soap.AttachmentPart;
 
 import com.sun.messaging.xml.MessageTransformer;
 import jakarta.jms.TopicConnectionFactory;
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SOAPMessageWithJMSClient.java b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SOAPMessageWithJMSClient.java
index 9d27ec0..084f19a 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SOAPMessageWithJMSClient.java
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SOAPMessageWithJMSClient.java
@@ -10,6 +10,24 @@
 
 package samples.jms.soaptojms;
 
+import jakarta.xml.soap.MessageFactory;
+import jakarta.xml.soap.SOAPMessage;
+import jakarta.xml.soap.AttachmentPart;
+
+import com.sun.messaging.xml.MessageTransformer;
+import jakarta.jms.TopicConnectionFactory;
+
+import jakarta.jms.MessageListener;
+import jakarta.jms.TopicConnection;
+import jakarta.jms.TopicSession;
+import jakarta.jms.Message;
+import jakarta.jms.Session;
+import jakarta.jms.Topic;
+import jakarta.jms.JMSException;
+import jakarta.jms.TopicSubscriber;
+
+import java.util.Iterator;
+
 /**
  * This sample program shows a JMS message listener can use the MessageTransformer
  * utility to convert JMS messages back to SOAP messages.
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SendSOAPMessageWithJMS.java b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SendSOAPMessageWithJMS.java
index 8cf82b4..fe158bc 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SendSOAPMessageWithJMS.java
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/mbeanapi/deployment/com/sun/enterprise/admin/mbeanapi/deployment/samples/SOAPtoJMSMessageSampleClient/simple-client/src/java/samples/jms/soaptojms/SendSOAPMessageWithJMS.java
@@ -10,14 +10,14 @@
 
 package samples.jms.soaptojms;
 
-import javax.xml.soap.SOAPMessage;
-import javax.xml.soap.SOAPPart;
-import javax.xml.soap.SOAPEnvelope;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.MessageFactory;
-import javax.xml.soap.AttachmentPart;
-import javax.xml.soap.Name;
+import jakarta.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPPart;
+import jakarta.xml.soap.SOAPEnvelope;
+import jakarta.xml.soap.SOAPBody;
+import jakarta.xml.soap.SOAPElement;
+import jakarta.xml.soap.MessageFactory;
+import jakarta.xml.soap.AttachmentPart;
+import jakarta.xml.soap.Name;
 
 import java.net.URL;
 import javax.activation.DataHandler;
@@ -41,7 +41,7 @@
  * This example shows how to use the MessageTransformer utility to send SOAP
  * messages with JMS.
  * <p>
- * SOAP messages are constructed with javax.xml.soap API.  The messages
+ * SOAP messages are constructed with jakarta.xml.soap API.  The messages
  * are converted with MessageTransformer utility to convert SOAP to JMS
  * message types.  The JMS messages are then published to the JMS topics.
  */
diff --git a/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java b/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java
index 310e76d..3bcf626 100644
--- a/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java
+++ b/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java
@@ -19,7 +19,7 @@
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 import com.sun.appserv.sqe.security.taxws.Tax;
 import com.sun.appserv.sqe.security.taxws.TaxService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import javax.xml.rpc.Stub;
 
 /**
diff --git a/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java.template b/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java.template
index 310e76d..3bcf626 100644
--- a/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java.template
+++ b/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/client/TaxCalClient.java.template
@@ -19,7 +19,7 @@
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 import com.sun.appserv.sqe.security.taxws.Tax;
 import com.sun.appserv.sqe.security.taxws.TaxService;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import javax.xml.rpc.Stub;
 
 /**
diff --git a/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/web/Tax.java b/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/web/Tax.java
index 79449b6..bb7ed94 100644
--- a/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/web/Tax.java
+++ b/appserver/tests/v2-tests/appserv-tests/sqetests/security/wss/servletjaxws/web/Tax.java
@@ -17,8 +17,8 @@
 package com.sun.appserv.sqe.security.wss.annotations;
 
 
-import javax.jws.WebService;
-import javax.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.jws.WebMethod;
 
 /**
  * FedTax WebService endpoint using the Java EE 5 annotations. 
diff --git a/appserver/web/weld-integration/pom.xml b/appserver/web/weld-integration/pom.xml
index 65df96b..442b0a2 100644
--- a/appserver/web/weld-integration/pom.xml
+++ b/appserver/web/weld-integration/pom.xml
@@ -139,6 +139,14 @@
             <groupId>jakarta.transaction</groupId>
             <artifactId>jakarta.transaction-api</artifactId>
         </dependency>
+        <!--
+            TODO: does this really belong here?
+            InjectionServicesImpl needs jakarta.xml.ws.WebServiceRef
+        -->
+        <dependency>
+            <groupId>org.glassfish.metro</groupId>
+            <artifactId>webservices-api-osgi</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.easymock</groupId>
             <artifactId>easymock</artifactId>
diff --git a/appserver/web/weld-integration/src/main/java/org/glassfish/weld/InjectionPointHelper.java b/appserver/web/weld-integration/src/main/java/org/glassfish/weld/InjectionPointHelper.java
index d9fad9c..3bbec26 100644
--- a/appserver/web/weld-integration/src/main/java/org/glassfish/weld/InjectionPointHelper.java
+++ b/appserver/web/weld-integration/src/main/java/org/glassfish/weld/InjectionPointHelper.java
@@ -170,7 +170,7 @@
                 className.equals("javax.annotation.Resource") ||
                 className.equals("javax.persistence.PersistenceContext") ||
                 className.equals("javax.persistence.PersistenceUnit") ||
-                className.equals("javax.xml.ws.WebServiceRef") ) {
+                className.equals("jakarta.xml.ws.WebServiceRef") ) {
                 envAnnotation = next;
                 break;
             }
diff --git a/appserver/web/weld-integration/src/main/java/org/glassfish/weld/services/InjectionServicesImpl.java b/appserver/web/weld-integration/src/main/java/org/glassfish/weld/services/InjectionServicesImpl.java
index 9970ee5..0d09977 100644
--- a/appserver/web/weld-integration/src/main/java/org/glassfish/weld/services/InjectionServicesImpl.java
+++ b/appserver/web/weld-integration/src/main/java/org/glassfish/weld/services/InjectionServicesImpl.java
@@ -38,7 +38,7 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.PersistenceContext;
 import javax.persistence.PersistenceUnit;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRef;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -253,14 +253,14 @@
     private void validateWebServiceRef( AnnotatedField annotatedField ) {
         WebServiceRef webServiceRef = annotatedField.getAnnotation(WebServiceRef.class);
         if ( webServiceRef != null ) {
-            if ( javax.xml.ws.Service.class.isAssignableFrom(annotatedField.getJavaMember().getType())) {
+            if ( jakarta.xml.ws.Service.class.isAssignableFrom(annotatedField.getJavaMember().getType())) {
                 return;
             }
 
             if ( annotatedField.getJavaMember().getType().isInterface() ) {
                 Class serviceClass = webServiceRef.value();
                 if ( serviceClass != null ) {
-                    if ( ! javax.xml.ws.Service.class.isAssignableFrom(serviceClass)) {
+                    if ( ! jakarta.xml.ws.Service.class.isAssignableFrom(serviceClass)) {
                         throw new DefinitionException( "The type of the injection point " +
                                                        annotatedField.getJavaMember().getName() +
                                                        " is an interface: " +
@@ -268,7 +268,7 @@
                                                        ".  The @WebSreviceRef value of " +
                                                        serviceClass +
                                                        " is not assignable from " +
-                                                       javax.xml.ws.Service.class.getName());
+                                                       jakarta.xml.ws.Service.class.getName());
                     }
                 }
             } else {
diff --git a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/WebServicesSniffer.java b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/WebServicesSniffer.java
index 192029e..d5222b4 100644
--- a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/WebServicesSniffer.java
+++ b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/WebServicesSniffer.java
@@ -34,8 +34,8 @@
 @Singleton
 public class WebServicesSniffer extends GenericSniffer {
 
-    private static final Class[]  handledAnnotations = new Class[] {javax.jws.WebService.class,
-            javax.xml.ws.WebServiceProvider.class, javax.xml.ws.WebServiceRef.class};
+    private static final Class[]  handledAnnotations = new Class[] {jakarta.jws.WebService.class,
+            jakarta.xml.ws.WebServiceProvider.class, jakarta.xml.ws.WebServiceRef.class};
 
     final String[] containers = {
         "org.glassfish.webservices.WebServicesContainer",
diff --git a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/HandlerChainHandler.java b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/HandlerChainHandler.java
index 69a7319..0a6dda4 100644
--- a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/HandlerChainHandler.java
+++ b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/HandlerChainHandler.java
@@ -17,10 +17,10 @@
 package org.glassfish.webservices.connector.annotation.handlers;
 
 
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.WebServiceRef;
-import javax.jws.HandlerChain;
+import jakarta.jws.WebService;
+import jakarta.xml.ws.WebServiceProvider;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.jws.HandlerChain;
 
 import java.lang.annotation.ElementType;
 import java.lang.reflect.Field;
@@ -66,7 +66,7 @@
 import org.jvnet.hk2.annotations.Service;
 
 /**
- * This handler takes care of the javax.jws.HandlerChain
+ * This handler takes care of the jakarta.jws.HandlerChain
  *
  * @author Jerome Dochez
  */
diff --git a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceHandler.java b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceHandler.java
index 2b466c2..5c09dcf 100644
--- a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceHandler.java
+++ b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceHandler.java
@@ -48,13 +48,13 @@
 import org.jvnet.hk2.annotations.Service;
 
 /**
- * This annotation handler is responsible for processing the javax.jws.WebService
+ * This annotation handler is responsible for processing the jakarta.jws.WebService
  * annotation type.
  *
  * @author Jerome Dochez
  */
 @Service
-@AnnotationHandlerFor(javax.jws.WebService.class)
+@AnnotationHandlerFor(jakarta.jws.WebService.class)
 public class WebServiceHandler extends AbstractHandler {
 
     private static final Logger conLogger = LogUtils.getLogger();
@@ -120,7 +120,7 @@
         }
 
         // let's get the main annotation of interest.
-        javax.jws.WebService ann = (javax.jws.WebService) annInfo.getAnnotation();
+        jakarta.jws.WebService ann = (jakarta.jws.WebService) annInfo.getAnnotation();
 
         BundleDescriptor bundleDesc = null;
 
@@ -234,8 +234,8 @@
 
         // Store binding type specified in Impl class
         String userSpecifiedBinding = null;
-        javax.xml.ws.BindingType bindingAnn = (javax.xml.ws.BindingType)
-                ((Class)annElem).getAnnotation(javax.xml.ws.BindingType.class);
+        jakarta.xml.ws.BindingType bindingAnn = (jakarta.xml.ws.BindingType)
+                ((Class)annElem).getAnnotation(jakarta.xml.ws.BindingType.class);
         if(bindingAnn != null) {
             userSpecifiedBinding = bindingAnn.value();
         }
@@ -261,21 +261,21 @@
             }
             annElem = endpointIntf;
 
-            ann = annElem.getAnnotation(javax.jws.WebService.class);
+            ann = annElem.getAnnotation(jakarta.jws.WebService.class);
             if (ann==null) {
                 throw new AnnotationProcessorException(
                         wsLocalStrings.getLocalString("no.webservice.annotation",
                             "WS00025: SEI {0} referenced from the @WebService annotation on {1}  does not contain a @WebService annotation",
-                            ((javax.jws.WebService) annInfo.getAnnotation()).endpointInterface(),
+                            ((jakarta.jws.WebService) annInfo.getAnnotation()).endpointInterface(),
                             ((Class) annElem).getName()));
             }
 
             // SEI cannot have @BindingType
-            if(annElem.getAnnotation(javax.xml.ws.BindingType.class) != null) {
+            if(annElem.getAnnotation(jakarta.xml.ws.BindingType.class) != null) {
                 throw new AnnotationProcessorException(
                         wsLocalStrings.getLocalString("cannot.have.bindingtype",
                             "WS00026: SEI {0} cannot have @BindingType",
-                            ((javax.jws.WebService) annInfo.getAnnotation()).endpointInterface()
+                            ((jakarta.jws.WebService) annInfo.getAnnotation()).endpointInterface()
                     ));
             }
         }
@@ -491,7 +491,7 @@
                 } else {
                     throw new AnnotationProcessorException(
                             wsLocalStrings.getLocalString("missing.targetnamespace",
-                            "WS00029: The javax.jws.WebService annotation targetNamespace must be used for classes or interfaces that are in no package"));
+                            "WS00029: The jakarta.jws.WebService annotation targetNamespace must be used for classes or interfaces that are in no package"));
                 }
                 targetNameSpace = "http://" + (targetNameSpace==null?"":targetNameSpace+"/");
             }
@@ -517,7 +517,7 @@
         // Now force a HandlerChain annotation processing
         // This is to take care of the case where the endpoint Impl class does not
         // have @HandlerChain but the SEI has one specified through JAXWS customization
-        if((((Class)origAnnElem).getAnnotation(javax.jws.HandlerChain.class)) == null) {
+        if((((Class)origAnnElem).getAnnotation(jakarta.jws.HandlerChain.class)) == null) {
             return (new HandlerChainHandler()).processHandlerChainAnnotation(annInfo, annCtx, origAnnElem, (Class)origAnnElem, true);
         }
         return HandlerProcessingResultImpl.getDefaultResult(getAnnotationType(), ResultType.PROCESSED);
@@ -534,7 +534,7 @@
     private boolean ignoreWebserviceAnnotations(AnnotatedElement annElem,AnnotatedElementHandler annCtx){
 
         javax.ejb.Stateless stateless = annElem.getAnnotation(javax.ejb.Stateless.class);
-        javax.jws.WebService webservice = annElem.getAnnotation(javax.jws.WebService.class);
+        jakarta.jws.WebService webservice = annElem.getAnnotation(jakarta.jws.WebService.class);
         if ((stateless != null) && (webservice != null)
                && ( (annCtx instanceof WebBundleContext) || (annCtx instanceof WebComponentContext)) ) {
             return true;
diff --git a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceProviderHandler.java b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceProviderHandler.java
index 63fe662..81993bc 100644
--- a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceProviderHandler.java
+++ b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceProviderHandler.java
@@ -54,13 +54,13 @@
 import org.jvnet.hk2.annotations.Service;
 
 /**
- * This annotation handler is responsible for processing the javax.jws.WebService 
+ * This annotation handler is responsible for processing the jakarta.jws.WebService 
  * annotation type.
  *
  * @author Jerome Dochez
  */
 @Service
-@AnnotationHandlerFor(javax.xml.ws.WebServiceProvider.class)
+@AnnotationHandlerFor(jakarta.xml.ws.WebServiceProvider.class)
 public class WebServiceProviderHandler extends AbstractHandler {
     
     private static final Logger conLogger = LogUtils.getLogger();
@@ -115,15 +115,15 @@
         }
         
         // WebServiceProvider MUST implement the provider interface, let's check this
-        if (!javax.xml.ws.Provider.class.isAssignableFrom((Class) annElem)) {
+        if (!jakarta.xml.ws.Provider.class.isAssignableFrom((Class) annElem)) {
             AnnotationProcessorException ape = new AnnotationProcessorException(
-                    annElem.toString() + "does not implement the javax.xml.ws.Provider interface", annInfo);
+                    annElem.toString() + "does not implement the jakarta.xml.ws.Provider interface", annInfo);
             annInfo.getProcessingContext().getErrorHandler().error(ape);
             return HandlerProcessingResultImpl.getDefaultResult(getAnnotationType(), ResultType.FAILED);                                    
         }
     
         // let's get the main annotation of interest. 
-        javax.xml.ws.WebServiceProvider ann = (javax.xml.ws.WebServiceProvider) annInfo.getAnnotation();        
+        jakarta.xml.ws.WebServiceProvider ann = (jakarta.xml.ws.WebServiceProvider) annInfo.getAnnotation();        
         
         BundleDescriptor bundleDesc = null;
         
@@ -178,8 +178,8 @@
 
         // Store binding type specified in Impl class
         String userSpecifiedBinding = null;
-        javax.xml.ws.BindingType bindingAnn = (javax.xml.ws.BindingType)
-                ((Class)annElem).getAnnotation(javax.xml.ws.BindingType.class);
+        jakarta.xml.ws.BindingType bindingAnn = (jakarta.xml.ws.BindingType)
+                ((Class)annElem).getAnnotation(jakarta.xml.ws.BindingType.class);
         if(bindingAnn != null) {
             userSpecifiedBinding = bindingAnn.value();
         }
@@ -264,13 +264,13 @@
         Class clz = (Class) annElem;
         Class serviceEndpointIntf = null;
         for (Class intf : clz.getInterfaces()) {
-            if (javax.xml.ws.Provider.class.isAssignableFrom(intf)) {
+            if (jakarta.xml.ws.Provider.class.isAssignableFrom(intf)) {
                 serviceEndpointIntf = intf;
                 break;
             }
         }
         if (serviceEndpointIntf==null) {
-            endpoint.setServiceEndpointInterface("javax.xml.ws.Provider"); 
+            endpoint.setServiceEndpointInterface("jakarta.xml.ws.Provider"); 
         } else {
             endpoint.setServiceEndpointInterface(serviceEndpointIntf.getName());
         }
@@ -361,7 +361,7 @@
      */
     private boolean ignoreWebserviceAnnotations(AnnotatedElement annElem, AnnotatedElementHandler annCtx) {
         javax.ejb.Stateless stateless = annElem.getAnnotation(javax.ejb.Stateless.class);
-        javax.xml.ws.WebServiceProvider webservice = annElem.getAnnotation(javax.xml.ws.WebServiceProvider.class);
+        jakarta.xml.ws.WebServiceProvider webservice = annElem.getAnnotation(jakarta.xml.ws.WebServiceProvider.class);
         if ((stateless != null) && (webservice != null)
                 && ((annCtx instanceof WebBundleContext) || (annCtx instanceof WebComponentContext))) {
             return true;
diff --git a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefHandler.java b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefHandler.java
index 9263fe5..5b23375 100644
--- a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefHandler.java
+++ b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefHandler.java
@@ -27,11 +27,11 @@
 import java.util.HashMap;
 import java.util.logging.Level;
 
-import javax.xml.ws.*;
-import javax.xml.ws.RespectBinding;
-import javax.xml.ws.spi.WebServiceFeatureAnnotation;
-import javax.xml.ws.soap.MTOM;
-import javax.xml.ws.soap.Addressing;
+import jakarta.xml.ws.*;
+import jakarta.xml.ws.RespectBinding;
+import jakarta.xml.ws.spi.WebServiceFeatureAnnotation;
+import jakarta.xml.ws.soap.MTOM;
+import jakarta.xml.ws.soap.Addressing;
 
 import org.glassfish.apf.*;
 import org.glassfish.apf.impl.HandlerProcessingResultImpl;
@@ -46,12 +46,12 @@
 import static com.sun.enterprise.util.StringUtils.ok;
 
 /**
- * This annotation handler is responsible for processing the javax.jws.WebServiceRef annotation type.
+ * This annotation handler is responsible for processing the jakarta.jws.WebServiceRef annotation type.
  *
  * @author Jerome Dochez
  */
 @Service
-@AnnotationHandlerFor(javax.xml.ws.WebServiceRef.class)
+@AnnotationHandlerFor(jakarta.xml.ws.WebServiceRef.class)
 public class WebServiceRefHandler extends AbstractHandler  {
 
     /**
@@ -258,7 +258,7 @@
                     ok(getLookupValue(annotation, annInfo)))
                 aRef.setLookupName(getLookupValue(annotation, annInfo));
 
-            aRef.setInjectResourceType("javax.jws.WebServiceRef");
+            aRef.setInjectResourceType("jakarta.jws.WebServiceRef");
 
             if (target != null)
                 aRef.addInjectionTarget(target);
@@ -271,7 +271,7 @@
             // default value is "Service".  Check whether the value is one
             // of these default values.
             if (!Object.class.equals(annotation.value()) &&
-                    (!javax.xml.ws.Service.class.equals(annotation.value()))) {
+                    (!jakarta.xml.ws.Service.class.equals(annotation.value()))) {
                 // a value was provided, which should be the Service
                 // interface, the requested injection is therefore on the
                 // port.
@@ -322,7 +322,7 @@
         // Now force a HandlerChain annotation processing
         // This is to take care of the case where the client class does not
         // have @HandlerChain but the SEI has one specified through JAXWS customization
-        if(annElem.getAnnotation(javax.jws.HandlerChain.class) == null) {
+        if(annElem.getAnnotation(jakarta.jws.HandlerChain.class) == null) {
             return (new HandlerChainHandler()).processHandlerChainAnnotation(annInfo, annCtx, annotatedType, declaringClass, false);
         }
         return HandlerProcessingResultImpl.getDefaultResult(getAnnotationType(), ResultType.PROCESSED);        
diff --git a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefsHandler.java b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefsHandler.java
index f5d5588..d3fccb3 100644
--- a/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefsHandler.java
+++ b/appserver/webservices/connector/src/main/java/org/glassfish/webservices/connector/annotation/handlers/WebServiceRefsHandler.java
@@ -19,8 +19,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.ws.WebServiceRefs;
-import javax.xml.ws.WebServiceRef;
+import jakarta.xml.ws.WebServiceRefs;
+import jakarta.xml.ws.WebServiceRef;
 
 import org.glassfish.apf.AnnotationHandlerFor;
 import org.glassfish.apf.AnnotationInfo;
diff --git a/appserver/webservices/jsr109-impl/pom.xml b/appserver/webservices/jsr109-impl/pom.xml
index 86b8916..7d93140 100755
--- a/appserver/webservices/jsr109-impl/pom.xml
+++ b/appserver/webservices/jsr109-impl/pom.xml
@@ -139,6 +139,16 @@
             <artifactId>jakarta.ejb-api</artifactId>
         </dependency>
         <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>4.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <version>5.0.0-M1</version>
+        </dependency>
+        <dependency>
             <groupId>org.glassfish.main.ejb</groupId>
             <artifactId>ejb-internal-api</artifactId>
             <version>${project.version}</version>
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/Ejb3MessageDispatcher.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/Ejb3MessageDispatcher.java
index a431f66..98ae6aa 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/Ejb3MessageDispatcher.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/Ejb3MessageDispatcher.java
@@ -82,8 +82,9 @@
             try {
                 adapterInfo = (AdapterInvocationInfo) endpointInfo.prepareInvocation(true);
                 adapter = adapterInfo.getAdapter();
-                if (adapter != null) {                    
-                    adapter.handle(null, req, resp);
+                if (adapter != null) {
+                    logger.log(Level.SEVERE, "!!! TODO: UNCOMMENT LINE BELLOW !!! ({0})", Ejb3MessageDispatcher.class.getName());
+//                    adapter.handle(null, req, resp);
                 } else {
                     logger.log(Level.SEVERE, LogUtils.UNABLE_FIND_ADAPTER, endpointInfo.getEndpoint().getName());
                 }
@@ -116,7 +117,8 @@
              adapterInfo = (AdapterInvocationInfo) endpointInfo.prepareInvocation(true);
             adapter = adapterInfo.getAdapter();
             if (adapter != null) {
-                adapter.publishWSDL(ctxt, req, resp);
+                  logger.log(Level.SEVERE, "!!! TODO: UNCOMMENT LINE BELLOW !!! ({0})", Ejb3MessageDispatcher.class.getName());
+//                adapter.publishWSDL(ctxt, req, resp);
             } else {
                 String message = "Invalid wsdl request " +  req.getRequestURL();
                 (new WsUtil()).writeInvalidMethodType(resp, message);
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbRuntimeEndpointInfo.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbRuntimeEndpointInfo.java
index cb2eb74..510e812 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbRuntimeEndpointInfo.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbRuntimeEndpointInfo.java
@@ -33,10 +33,10 @@
 import org.glassfish.internal.data.ApplicationInfo;
 import org.glassfish.internal.data.ApplicationRegistry;
 
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.WebServiceFeature;
-import javax.xml.ws.soap.AddressingFeature;
-import javax.xml.ws.soap.MTOMFeature;
+import jakarta.xml.ws.WebServiceContext;
+import jakarta.xml.ws.WebServiceFeature;
+import jakarta.xml.ws.soap.AddressingFeature;
+import jakarta.xml.ws.soap.MTOMFeature;
 import java.io.File;
 import java.net.URI;
 import java.net.URL;
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbWebServiceServlet.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbWebServiceServlet.java
index b14508a..9f67634 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbWebServiceServlet.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/EjbWebServiceServlet.java
@@ -29,7 +29,7 @@
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.http.HTTPBinding;
 import org.glassfish.api.logging.LogHelper;
 import org.glassfish.webservices.monitoring.Endpoint;
 import org.glassfish.webservices.monitoring.WebServiceEngineImpl;
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/HandlerResolverImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/HandlerResolverImpl.java
index 4ea8628..e3a461d 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/HandlerResolverImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/HandlerResolverImpl.java
@@ -22,9 +22,9 @@
 import java.util.Map;
 import java.util.Iterator;
 
-import javax.xml.ws.handler.Handler;
-import javax.xml.ws.handler.HandlerResolver;
-import javax.xml.ws.handler.PortInfo;
+import jakarta.xml.ws.handler.Handler;
+import jakarta.xml.ws.handler.HandlerResolver;
+import jakarta.xml.ws.handler.PortInfo;
 import com.sun.xml.ws.api.BindingID;
 
 /**
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InstanceResolverImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InstanceResolverImpl.java
index 8e47139..3b30f12 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InstanceResolverImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InstanceResolverImpl.java
@@ -35,8 +35,8 @@
 
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceException;
 
 
 public final class InstanceResolverImpl<T> extends InstanceResolver<T> {
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InvokerImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InvokerImpl.java
index 3d64160..69a9ba6 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InvokerImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/InvokerImpl.java
@@ -16,8 +16,8 @@
 
 package org.glassfish.webservices;
 
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceContext;
+import jakarta.xml.ws.Provider;
+import jakarta.xml.ws.WebServiceContext;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 import com.sun.xml.ws.api.message.Packet;
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServiceDelegate.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServiceDelegate.java
index c5b8c5c..6fa623d 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServiceDelegate.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServiceDelegate.java
@@ -32,11 +32,11 @@
 import java.lang.reflect.Method;
 
 import javax.xml.namespace.QName;
-import javax.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBContext;
 
-import javax.xml.ws.Service;
-import javax.xml.ws.Dispatch;
-import javax.xml.ws.handler.HandlerResolver;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.Dispatch;
+import jakarta.xml.ws.handler.HandlerResolver;
 
 import com.sun.enterprise.deployment.ServiceReferenceDescriptor;
 import com.sun.enterprise.deployment.ServiceRefPortInfo;
@@ -179,7 +179,7 @@
         try {
 
             Class noParams[]   = new Class[0];
-            Class serviceClass = javax.xml.ws.Service.class;
+            Class serviceClass = jakarta.xml.ws.Service.class;
 
             //
             // Map Service method to method type.
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServlet.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServlet.java
index c88e23b..7d40966 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServlet.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/JAXWSServlet.java
@@ -31,8 +31,8 @@
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.xml.ws.WebServiceException;
-import javax.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.WebServiceException;
+import jakarta.xml.ws.http.HTTPBinding;
 import java.io.IOException;
 import java.text.MessageFormat;
 import java.util.Collection;
@@ -142,7 +142,8 @@
         try {
             ServletAdapter targetEndpoint = (ServletAdapter) getEndpointFor(request);
             if (targetEndpoint != null) {
-                targetEndpoint.handle(getServletContext(), request, response);
+                logger.log(Level.SEVERE, "!!! TODO: UNCOMMENT LINE BELLOW !!! ({0})", JAXWSServlet.class.getName());
+//                targetEndpoint.handle(getServletContext(), request, response);
             } else {
                 throw new ServletException("Service not found");
             }
@@ -203,7 +204,8 @@
         try {
             ServletAdapter targetEndpoint = (ServletAdapter) getEndpointFor(request);
             if (targetEndpoint != null && wsdlExposed) {
-                targetEndpoint.publishWSDL(getServletContext(), request, response);
+                logger.log(Level.SEVERE, "!!! TODO: UNCOMMENT LINE BELLOW !!! ({0})", JAXWSServlet.class.getName());
+//                targetEndpoint.publishWSDL(getServletContext(), request, response);
             } else {
                 String message =
                         "Invalid wsdl request " + request.getRequestURL();
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/MonitoringPipe.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/MonitoringPipe.java
index fdc142a..ea6dfe0 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/MonitoringPipe.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/MonitoringPipe.java
@@ -21,7 +21,7 @@
 import javax.xml.namespace.QName;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.http.HTTPBinding;
 
 import com.sun.xml.ws.api.pipe.Pipe;
 import com.sun.xml.ws.api.message.Message;
@@ -88,9 +88,9 @@
         }
         SOAPMessageContext ctxt = new SOAPMessageContextImpl(request);
         HttpServletRequest httpRequest =
-                (HttpServletRequest) request.get(javax.xml.ws.handler.MessageContext.SERVLET_REQUEST);
+                (HttpServletRequest) request.get(jakarta.xml.ws.handler.MessageContext.SERVLET_REQUEST);
         HttpServletResponse httpResponse =
-                (HttpServletResponse) request.get(javax.xml.ws.handler.MessageContext.SERVLET_RESPONSE);
+                (HttpServletResponse) request.get(jakarta.xml.ws.handler.MessageContext.SERVLET_RESPONSE);
 
         String messageId=null;
 
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortCreationCallbackImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortCreationCallbackImpl.java
index 1a09b86..42c1233 100755
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortCreationCallbackImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortCreationCallbackImpl.java
@@ -21,8 +21,8 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.xml.ws.Binding;
-import javax.xml.ws.soap.SOAPBinding;
+import jakarta.xml.ws.Binding;
+import jakarta.xml.ws.soap.SOAPBinding;
 
 import com.sun.xml.ws.api.client.ServiceInterceptor;
 import com.sun.xml.ws.developer.WSBindingProvider;
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortInfoImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortInfoImpl.java
index 5f90529..7b5fa3a 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortInfoImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/PortInfoImpl.java
@@ -19,7 +19,7 @@
 import com.sun.xml.ws.api.BindingID;
 
 import javax.xml.namespace.QName;
-import javax.xml.ws.handler.PortInfo;
+import jakarta.xml.ws.handler.PortInfo;
 
 /**
  * Implementation of the PortInfo interface. This is just a simple
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ResourceInjectorImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ResourceInjectorImpl.java
index 9de1f84..3c7f02f 100755
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ResourceInjectorImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ResourceInjectorImpl.java
@@ -30,7 +30,7 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.xml.ws.WebServiceException;
+import jakarta.xml.ws.WebServiceException;
 
 import org.glassfish.api.invocation.InvocationManager;
 import org.glassfish.api.invocation.ComponentInvocation;
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContext.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContext.java
index 1c6b0ed..b4aac7f 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContext.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContext.java
@@ -21,7 +21,7 @@
  * required for the AS's WS security and monitoring mechamisms to work properly.
  */
 public interface SOAPMessageContext
-    extends javax.xml.ws.handler.soap.SOAPMessageContext {
+    extends jakarta.xml.ws.handler.soap.SOAPMessageContext {
 
     /**
      * If there is a SOAPMessage already, use getSOAPMessage(). Ignore all other methods
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContextImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContextImpl.java
index f5166e3..7bc46a6 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContextImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/SOAPMessageContextImpl.java
@@ -24,14 +24,14 @@
 import java.util.logging.Logger;
 
 import javax.xml.namespace.QName;
-import javax.xml.bind.JAXBContext;
-import javax.xml.ws.handler.MessageContext.Scope;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.ws.handler.MessageContext.Scope;
 
 import com.sun.xml.ws.api.message.Messages;
 import com.sun.xml.ws.api.message.Message;
 import com.sun.xml.ws.api.message.Packet;
 
-import javax.xml.soap.SOAPMessage;
+import jakarta.xml.soap.SOAPMessage;
 
 /**
  * Implementation of SOAPMessageContext
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ServerPipeCreator.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ServerPipeCreator.java
index 3df1021..5437560 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ServerPipeCreator.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/ServerPipeCreator.java
@@ -17,7 +17,7 @@
 package org.glassfish.webservices;
 
 
-import javax.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.http.HTTPBinding;
 
 import com.sun.xml.ws.api.pipe.Pipe;
 import com.sun.xml.ws.assembler.ServerPipelineHook;
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WSServletContextListener.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WSServletContextListener.java
index 5075b42..b2e9170 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WSServletContextListener.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WSServletContextListener.java
@@ -36,11 +36,11 @@
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
-import javax.xml.ws.RespectBindingFeature;
-import javax.xml.ws.WebServiceException;
-import javax.xml.ws.WebServiceFeature;
-import javax.xml.ws.soap.AddressingFeature;
-import javax.xml.ws.soap.MTOMFeature;
+import jakarta.xml.ws.RespectBindingFeature;
+import jakarta.xml.ws.WebServiceException;
+import jakarta.xml.ws.WebServiceFeature;
+import jakarta.xml.ws.soap.AddressingFeature;
+import jakarta.xml.ws.soap.MTOMFeature;
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -48,7 +48,7 @@
 import java.util.Collection;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import javax.xml.ws.handler.Handler;
+import jakarta.xml.ws.handler.Handler;
 
 /**
  * This class serves for initialization of JAX-WS WSEndpoints when the context
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceContextImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceContextImpl.java
index 31a1666..8e2cf1e 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceContextImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceContextImpl.java
@@ -22,8 +22,8 @@
 import com.sun.enterprise.web.WebModule;
 import org.glassfish.api.invocation.InvocationManager;
 
-import javax.xml.ws.EndpointReference;
-import javax.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.EndpointReference;
+import jakarta.xml.ws.handler.MessageContext;
 import java.security.Principal;
 import java.util.Set;
 import java.util.Iterator;
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceEjbEndpointRegistry.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceEjbEndpointRegistry.java
index d1c728a..9e3ca24 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceEjbEndpointRegistry.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceEjbEndpointRegistry.java
@@ -38,8 +38,8 @@
 import org.glassfish.ejb.spi.WSEjbEndpointRegistry;
 import org.glassfish.ejb.api.EjbEndpointFacade;
 
-import javax.xml.ws.WebServiceException;
-import javax.xml.ws.handler.Handler;
+import jakarta.xml.ws.WebServiceException;
+import jakarta.xml.ws.handler.Handler;
 
 /**
  * This class acts as a registry of all the webservice EJB end points
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceReferenceManagerImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceReferenceManagerImpl.java
index 0d05006..1875b9d 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceReferenceManagerImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WebServiceReferenceManagerImpl.java
@@ -32,12 +32,12 @@
 import javax.naming.NamingException;
 import javax.naming.InitialContext;
 import javax.xml.namespace.QName;
-import javax.xml.ws.soap.MTOMFeature;
-import javax.xml.ws.soap.AddressingFeature;
-import javax.xml.ws.WebServiceFeature;
-import javax.xml.ws.RespectBindingFeature;
-import javax.xml.ws.WebServiceException;
-import javax.xml.ws.spi.WebServiceFeatureAnnotation;
+import jakarta.xml.ws.soap.MTOMFeature;
+import jakarta.xml.ws.soap.AddressingFeature;
+import jakarta.xml.ws.WebServiceFeature;
+import jakarta.xml.ws.RespectBindingFeature;
+import jakarta.xml.ws.WebServiceException;
+import jakarta.xml.ws.spi.WebServiceFeatureAnnotation;
 import java.io.*;
 import java.lang.reflect.*;
 import java.lang.annotation.Annotation;
@@ -52,8 +52,8 @@
 
 /**
  * This class acts as a service to resolve the
- * </code>javax.xml.ws.WebServiceRef</code> references
- * and also <code>javax.xml.ws.WebServiceContext</code>
+ * </code>jakarta.xml.ws.WebServiceRef</code> references
+ * and also <code>jakarta.xml.ws.WebServiceContext</code>
  * Whenever a lookup is done from GlassfishNamingManagerImpl
  * these methods are invoked to resolve the references
  *
@@ -98,15 +98,15 @@
 
             resolvePortComponentLinks(desc);
 
-            javax.xml.ws.Service jaxwsDelegate = null;
+            jakarta.xml.ws.Service jaxwsDelegate = null;
             Object injValue = null;
 
                     // The target is probably a post JAXRPC-1.1- based service;
                     // If Service Interface class is set, check if it is indeed a subclass of Service
-                    // initiateInstance should not be called if the user has given javax.xml.ws.Service itself
+                    // initiateInstance should not be called if the user has given jakarta.xml.ws.Service itself
                     // as the interface through DD
-                    if(javax.xml.ws.Service.class.isAssignableFrom(serviceInterfaceClass) &&
-                            !javax.xml.ws.Service.class.equals(serviceInterfaceClass) ) {
+                    if(jakarta.xml.ws.Service.class.isAssignableFrom(serviceInterfaceClass) &&
+                            !jakarta.xml.ws.Service.class.equals(serviceInterfaceClass) ) {
                         // OK - the interface class is indeed the generated service class; get an instance
                         injValue = initiateInstance(serviceInterfaceClass, desc);
                     } else {
@@ -155,23 +155,23 @@
                     if(injValue == null) {
                         // Here create the service with WSDL (overridden wsdl if wsdl-override is present)
                         // so that JAXWS runtime uses this wsdl @ runtime
-                        javax.xml.ws.Service svc =
-                                javax.xml.ws.Service.create((new WsUtil()).privilegedGetServiceRefWsdl(desc),
+                        jakarta.xml.ws.Service svc =
+                                jakarta.xml.ws.Service.create((new WsUtil()).privilegedGetServiceRefWsdl(desc),
                                         desc.getServiceName());
                         jaxwsDelegate = new JAXWSServiceDelegate(desc, svc, cl);
                     }
                 
 
                 // check if this is a post 1.1 web service
-                if(javax.xml.ws.Service.class.isAssignableFrom(serviceInterfaceClass)) {
+                if(jakarta.xml.ws.Service.class.isAssignableFrom(serviceInterfaceClass)) {
                     // This is a JAXWS based webservice client;
                     // process handlers and mtom setting
                     // moved test for handlers into wsUtil, in case
                     // we have to add system handler
 
-                    javax.xml.ws.Service service =
+                    jakarta.xml.ws.Service service =
                             (injValue != null ?
-                                    (javax.xml.ws.Service) injValue : jaxwsDelegate);
+                                    (jakarta.xml.ws.Service) injValue : jaxwsDelegate);
 
                     if (service != null) {
                         // Now configure client side handlers
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WsUtil.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WsUtil.java
index 94a1ac1..ae67bc5 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WsUtil.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/WsUtil.java
@@ -41,10 +41,10 @@
 import java.util.logging.Logger;
 import java.util.logging.Level;
 import javax.xml.parsers.*;
-import javax.xml.ws.soap.SOAPBinding;
-import javax.xml.ws.handler.Handler;
-import javax.xml.ws.http.HTTPBinding;
-import javax.xml.soap.*;
+import jakarta.xml.ws.soap.SOAPBinding;
+import jakarta.xml.ws.handler.Handler;
+import jakarta.xml.ws.http.HTTPBinding;
+import jakarta.xml.soap.*;
 import javax.xml.transform.Source;
 import javax.xml.transform.Templates;
 import javax.xml.transform.Transformer;
@@ -870,9 +870,9 @@
         } else {
             String protocol;
             if (SOAPBinding.SOAP12HTTP_BINDING.equals(binding)) {
-                protocol = javax.xml.soap.SOAPConstants.SOAP_1_2_PROTOCOL;
+                protocol = jakarta.xml.soap.SOAPConstants.SOAP_1_2_PROTOCOL;
             } else {
-                protocol = javax.xml.soap.SOAPConstants.SOAP_1_1_PROTOCOL;
+                protocol = jakarta.xml.soap.SOAPConstants.SOAP_1_1_PROTOCOL;
             }
             SOAPMessage fault = WsUtil.getSOAPFault(protocol, faultString);
             
@@ -890,7 +890,7 @@
     public static SOAPMessage getSOAPFault(String protocol, String faultString) {
 
         if (protocol==null) {
-            protocol = javax.xml.soap.SOAPConstants.SOAP_1_1_PROTOCOL;
+            protocol = jakarta.xml.soap.SOAPConstants.SOAP_1_1_PROTOCOL;
         }
         try {
             MessageFactory factory = MessageFactory.newInstance(protocol);
@@ -1558,12 +1558,12 @@
         // set final list of handler in RuntimeEndpointInfo
         bindingObj.setHandlerChain(finalHandlerList);
         // Set soap roles for soap bindings only
-        if(bindingObj instanceof javax.xml.ws.soap.SOAPBinding) {
-            ((javax.xml.ws.soap.SOAPBinding)bindingObj).setRoles(roles);
+        if(bindingObj instanceof jakarta.xml.ws.soap.SOAPBinding) {
+            ((jakarta.xml.ws.soap.SOAPBinding)bindingObj).setRoles(roles);
         }        
     }
 
-    public void configureJAXWSClientHandlers(javax.xml.ws.Service svcClass, ServiceReferenceDescriptor desc) {
+    public void configureJAXWSClientHandlers(jakarta.xml.ws.Service svcClass, ServiceReferenceDescriptor desc) {
 
         // Create a resolver and get all ports for the Service
 
@@ -1634,7 +1634,7 @@
                 // Now you have the handler list; Set it in resolver;
                 // one set for each protocol
                 for(Iterator<String> s = protocols.iterator(); s.hasNext();) {
-                    javax.xml.ws.handler.PortInfo portInfo;
+                    jakarta.xml.ws.handler.PortInfo portInfo;
                     portInfo = new PortInfoImpl(BindingID.parse(s.next()),
                                     nextPort, desc.getServiceName());
                     resolver.setHandlerChain(portInfo, handlerInfo);
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/deployment/WSDolSupportImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/deployment/WSDolSupportImpl.java
index 0394af1..8198b28 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/deployment/WSDolSupportImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/deployment/WSDolSupportImpl.java
@@ -18,9 +18,9 @@
 
 import org.jvnet.hk2.annotations.Service;
 
-import javax.xml.ws.http.HTTPBinding;
-import javax.xml.ws.soap.SOAPBinding;
-import javax.xml.ws.WebServiceClient;
+import jakarta.xml.ws.http.HTTPBinding;
+import jakarta.xml.ws.soap.SOAPBinding;
+import jakarta.xml.ws.WebServiceClient;
 import javax.xml.namespace.QName;
 
 import com.sun.enterprise.deployment.ServiceReferenceDescriptor;
@@ -70,7 +70,7 @@
     }
 
     public void setServiceRef(Class annotatedClass, ServiceReferenceDescriptor ref) {
-        WebServiceClient wsc = (WebServiceClient)annotatedClass.getAnnotation(javax.xml.ws.WebServiceClient.class);
+        WebServiceClient wsc = (WebServiceClient)annotatedClass.getAnnotation(jakarta.xml.ws.WebServiceClient.class);
         if (wsc != null) {
             ref.setWsdlFileUri(wsc.wsdlLocation());
             //we set the service QName too from the @WebServiceClient annotation
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/JAXWSEndpointImpl.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/JAXWSEndpointImpl.java
index 8e5f811..b23ec26 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/JAXWSEndpointImpl.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/JAXWSEndpointImpl.java
@@ -18,7 +18,7 @@
 
 import java.util.logging.Level;
 import javax.servlet.http.HttpServletRequest;
-import javax.xml.ws.handler.MessageContext;
+import jakarta.xml.ws.handler.MessageContext;
 
 import org.glassfish.webservices.SOAPMessageContext;
 
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceStatsProvider.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceStatsProvider.java
index 257a367..c29538a 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceStatsProvider.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceStatsProvider.java
@@ -26,6 +26,8 @@
 
 import javax.servlet.ServletContext;
 import java.util.*;
+import java.util.logging.Level;
+import org.glassfish.webservices.LogUtils;
 
 
 /**
@@ -71,18 +73,19 @@
     // sun-jaxws.xml undeployment
     @ProbeListener("glassfish:webservices:deployment-ri:undeploy")
     public synchronized void riUndeploy(@ProbeParam("adapter")ServletAdapter adapter) {
-        ServletContext ctxt = adapter.getServletContext();
-        String name = ctxt.getContextPath()+adapter.getValidPath();
-        DeployedEndpointData data = endpoints.remove(name);
-
-        String contextPath = adapter.getServletContext().getContextPath();
-        List<DeployedEndpointData> ri = riEndpoints.get(contextPath);
-        if (ri != null) {
-            ri.remove(data);
-            if (ri.isEmpty()) {
-                riEndpoints.remove(contextPath);
-            }
-        }
+        LogUtils.getLogger().log(Level.SEVERE, "!!! TODO: UNCOMMENT LINE(S) BELLOW !!! ({0})", WebServiceStatsProvider.class.getName());
+//        ServletContext ctxt = adapter.getServletContext();
+//        String name = ctxt.getContextPath()+adapter.getValidPath();
+//        DeployedEndpointData data = endpoints.remove(name);
+//
+//        String contextPath = adapter.getServletContext().getContextPath();
+//        List<DeployedEndpointData> ri = riEndpoints.get(contextPath);
+//        if (ri != null) {
+//            ri.remove(data);
+//            if (ri.isEmpty()) {
+//                riEndpoints.remove(contextPath);
+//            }
+//        }
     }
 
     // admin CLI doesn't pick-up Collection<DeployedEndpointData>. Hence
diff --git a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceTesterServlet.java b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceTesterServlet.java
index 279e15d..f519ff6 100644
--- a/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceTesterServlet.java
+++ b/appserver/webservices/jsr109-impl/src/main/java/org/glassfish/webservices/monitoring/WebServiceTesterServlet.java
@@ -25,7 +25,7 @@
 import com.sun.enterprise.deployment.WebServiceEndpoint;
 import com.sun.enterprise.util.LocalStringManagerImpl;
 import com.sun.tools.ws.spi.WSToolsObjectFactory;
-import com.sun.xml.bind.api.JAXBRIContext;
+import org.glassfish.jaxb.runtime.api.JAXBRIContext;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -37,8 +37,8 @@
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
-import javax.xml.ws.Service;
-import javax.xml.ws.WebEndpoint;
+import jakarta.xml.ws.Service;
+import jakarta.xml.ws.WebEndpoint;
 import java.io.*;
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
@@ -136,7 +136,7 @@
         // For now support Tester servlet for JAXWS based services only
         try {
             Class seiClass = Thread.currentThread().getContextClassLoader().loadClass(seiClassName);
-            if(seiClass.getAnnotation(javax.jws.WebService.class) == null) {
+            if(seiClass.getAnnotation(jakarta.jws.WebService.class) == null) {
                 testerNotSupportedError(myEndpoint.getDescriptor().getServiceName(), out);
                 return;
             }
@@ -299,7 +299,7 @@
                            "<h4>SOAP Request</h4>"));
                     dumpMessage(listener.getRequest(), out);
                 }
-                if (toInvoke.getAnnotation(javax.jws.Oneway.class) == null &&
+                if (toInvoke.getAnnotation(jakarta.jws.Oneway.class) == null &&
                         listener.getRespose() != null) {
                     // let's print the SOAP request
                     out.print(localStrings.getLocalString(
diff --git a/appserver/webservices/jsr109-impl/src/test/java/org/glassfish/webservices/JAXWSAdapterRegistryTest.java b/appserver/webservices/jsr109-impl/src/test/java/org/glassfish/webservices/JAXWSAdapterRegistryTest.java
index dec86a7..be693ae 100644
--- a/appserver/webservices/jsr109-impl/src/test/java/org/glassfish/webservices/JAXWSAdapterRegistryTest.java
+++ b/appserver/webservices/jsr109-impl/src/test/java/org/glassfish/webservices/JAXWSAdapterRegistryTest.java
@@ -38,7 +38,7 @@
 import java.util.Set;
 import java.util.concurrent.Executor;
 import javax.xml.namespace.QName;
-import javax.xml.ws.EndpointReference;
+import jakarta.xml.ws.EndpointReference;
 import org.glassfish.gmbal.ManagedObjectManager;
 import org.junit.Assert;
 import org.junit.Ignore;
diff --git a/appserver/webservices/soap-tcp/src/main/java/org/glassfish/webservices/transport/tcp/ServletFakeArtifactSet.java b/appserver/webservices/soap-tcp/src/main/java/org/glassfish/webservices/transport/tcp/ServletFakeArtifactSet.java
index 697261c..5b3858c 100644
--- a/appserver/webservices/soap-tcp/src/main/java/org/glassfish/webservices/transport/tcp/ServletFakeArtifactSet.java
+++ b/appserver/webservices/soap-tcp/src/main/java/org/glassfish/webservices/transport/tcp/ServletFakeArtifactSet.java
@@ -34,9 +34,9 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpUpgradeHandler;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.ws.handler.MessageContext;
+import jakarta.xml.soap.SOAPException;
+import jakarta.xml.soap.SOAPMessage;
+import jakarta.xml.ws.handler.MessageContext;
 
 /**
  * @author Alexey Stashok
