diff --git a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java
index 1949280..155f1a5 100644
--- a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java
+++ b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorTest.java
@@ -90,8 +90,8 @@
             // The host of configuratorUrl is 0.0.0.0 or the local address is the same as consumerUrlV27
             // same appName
             URL url = configurator.configure(URL.valueOf(consumerUrlV27));
-            Assertions.assertEquals(url.getParameter("timeout"), "100");
-            Assertions.assertEquals(url.getParameter("weight"), "200");
+            Assertions.assertEquals("100", url.getParameter("timeout"));
+            Assertions.assertEquals("200", url.getParameter("weight"));
         }
 
         {
@@ -112,8 +112,8 @@
             // same appName
             AbsentConfigurator configurator = new AbsentConfigurator(providerConfiguratorUrl);
             URL url = configurator.configure(URL.valueOf(providerUrlV27));
-            Assertions.assertEquals(url.getParameter("timeout"), "20000");
-            Assertions.assertEquals(url.getParameter("weight"), "100");
+            Assertions.assertEquals("20000", url.getParameter("timeout"));
+            Assertions.assertEquals("100", url.getParameter("weight"));
         }
     }
 
diff --git a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParserTest.java b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParserTest.java
index 3b10d5b..91b4360 100644
--- a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParserTest.java
+++ b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParserTest.java
@@ -51,7 +51,7 @@
             Yaml yaml = new Yaml(new SafeConstructor());
             Map<String, Object> map = yaml.load(yamlStream);
             ConfiguratorConfig config = ConfiguratorConfig.parseFromMap(map);
-            System.out.println(config);
+            Assertions.assertNotNull(config);
         }
     }
 
@@ -62,8 +62,8 @@
             Assertions.assertNotNull(urls);
             Assertions.assertEquals(2, urls.size());
             URL url = urls.get(0);
-            Assertions.assertEquals(url.getAddress(), "127.0.0.1:20880");
-            Assertions.assertEquals(url.getParameter(WEIGHT_KEY, 0), 222);
+            Assertions.assertEquals("127.0.0.1:20880", url.getAddress());
+            Assertions.assertEquals(222, url.getParameter(WEIGHT_KEY, 0));
         }
     }
 
@@ -114,7 +114,7 @@
             Assertions.assertEquals("service1", url.getServiceInterface());
             Assertions.assertEquals(6666, url.getParameter(TIMEOUT_KEY, 0));
             Assertions.assertEquals("random", url.getParameter(LOADBALANCE_KEY));
-            Assertions.assertEquals(url.getApplication(), "demo-consumer");
+            Assertions.assertEquals("demo-consumer", url.getApplication());
         }
     }
 
@@ -130,7 +130,7 @@
             Assertions.assertEquals("*", url.getServiceInterface());
             Assertions.assertEquals(6666, url.getParameter(TIMEOUT_KEY, 0));
             Assertions.assertEquals("random", url.getParameter(LOADBALANCE_KEY));
-            Assertions.assertEquals(url.getApplication(), "demo-consumer");
+            Assertions.assertEquals("demo-consumer", url.getApplication());
         }
     }
 
@@ -145,7 +145,7 @@
             Assertions.assertEquals("*", url.getServiceInterface());
             Assertions.assertEquals(6666, url.getParameter(TIMEOUT_KEY, 0));
             Assertions.assertEquals("random", url.getParameter(LOADBALANCE_KEY));
-            Assertions.assertEquals(url.getApplication(), "demo-consumer");
+            Assertions.assertEquals("demo-consumer", url.getApplication());
         }
     }
 
@@ -161,7 +161,7 @@
             Assertions.assertEquals(6666, url.getParameter(TIMEOUT_KEY, 0));
             Assertions.assertEquals("random", url.getParameter(LOADBALANCE_KEY));
             Assertions.assertEquals("127.0.0.1:20880", url.getParameter(OVERRIDE_PROVIDERS_KEY));
-            Assertions.assertEquals(url.getApplication(), "demo-consumer");
+            Assertions.assertEquals("demo-consumer", url.getApplication());
         }
     }
 
diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml
index 9b3e09a..a41624f 100644
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@ -130,7 +130,7 @@
         <envoy_api_version>0.1.23</envoy_api_version>
 
         <rs_api_version>2.0</rs_api_version>
-        <resteasy_version>3.14.0.Final</resteasy_version>
+        <resteasy_version>3.0.19.Final</resteasy_version>
         <tomcat_embed_version>8.5.69</tomcat_embed_version>
         <jetcd_version>0.5.3</jetcd_version>
         <nacos_version>2.0.4</nacos_version>
