diff --git a/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java b/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java
index e41d223..618bad8 100644
--- a/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java
+++ b/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/common/JAXRSCommonClient.java
@@ -533,15 +533,19 @@
     return sb.toString();
   }
 
-  public static String editWebXmlString(InputStream inStream) throws IOException{
+  public static String toString(InputStream inStream) throws IOException{
     String line;
-    String webXmlTemplate = "";
+    String str = "";
     try (BufferedReader bufReader = new BufferedReader(new InputStreamReader(inStream, StandardCharsets.UTF_8))) {
       while ((line = bufReader.readLine()) != null) {
-        webXmlTemplate = webXmlTemplate + line + System.lineSeparator();
+        str = str + line + System.lineSeparator();
       }
+      return str;
     }
-    
+  }
+  
+  public static String editWebXmlString(InputStream inStream) throws IOException{
+    String webXmlTemplate = toString(inStream);
     String webXml = webXmlTemplate.replaceAll("servlet_adaptor", servletAdaptor);
     return webXml;
   }
diff --git a/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/spec/resourceconstructor/JAXRSClientIT.java b/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/spec/resourceconstructor/JAXRSClientIT.java
index 1f52466..f8e9a45 100644
--- a/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/spec/resourceconstructor/JAXRSClientIT.java
+++ b/jaxrs-tck/src/main/java/jakarta/ws/rs/tck/spec/resourceconstructor/JAXRSClientIT.java
@@ -55,8 +55,11 @@
   public static WebArchive createDeployment() throws IOException{
     InputStream inStream = JAXRSClientIT.class.getClassLoader().getResourceAsStream("jakarta/ws/rs/tck/spec/resourceconstructor/web.xml.template");
     String webXml = editWebXmlString(inStream);
+    inStream = JAXRSClientIT.class.getClassLoader().getResourceAsStream("jakarta/ws/rs/tck/spec/resourceconstructor/beans.xml");
+    String beansXml = toString(inStream);
     WebArchive archive = ShrinkWrap.create(WebArchive.class, "jaxrs_spec_resourceconstructor_web.war");
     archive.addClasses(TSAppConfig.class, Resource.class, CookieResource.class, HeaderResource.class, MatrixResource.class, PathResource.class, QueryResource.class);
+    archive.addAsWebInfResource(new StringAsset(beansXml), "beans.xml");
     archive.setWebXML(new StringAsset(webXml));
     return archive;
   }
