[#4334]fix invocation arguments not same with swagger arguments problem (#4335)

diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java
index 849fd56..74293a6 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java
@@ -17,7 +17,6 @@
 
 package org.apache.servicecomb.demo.springmvc;
 
-import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -29,7 +28,6 @@
 import org.apache.servicecomb.demo.controller.Controller;
 import org.apache.servicecomb.demo.controller.Person;
 import org.apache.servicecomb.demo.springmvc.client.CodeFirstRestTemplateSpringmvc;
-import org.apache.servicecomb.demo.springmvc.client.ThirdSvc.ThirdSvcClient;
 import org.apache.servicecomb.foundation.common.LegacyPropertyFactory;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
 import org.apache.servicecomb.foundation.vertx.client.http.HttpClients;
@@ -80,7 +78,7 @@
       LOGGER.error("-------------- test failed -------------");
     }
     TestMgr.summary();
-    LOGGER.info("-------------- last time updated checks(maybe more/less): 1341 -------------");
+    LOGGER.info("-------------- last time updated checks(maybe more/less): 1344 -------------");
   }
 
   private static void changeTransport(String microserviceName, String transport) {
@@ -218,18 +216,9 @@
       testController();
       testSpringMvcDefaultValuesAllTransport(templateUrlWithServiceName, microserviceName);
       testSpringMvcDefaultValuesJavaPrimitiveAllTransport(templateUrlWithServiceName, microserviceName);
-      testThirdService();
     }
   }
 
-  private static void testThirdService() {
-    ThirdSvcClient client = BeanUtils.getContext().getBean(ThirdSvcClient.class);
-
-    Date date = new Date();
-    ResponseEntity<Date> responseEntity = client.responseEntity(date);
-    TestMgr.check(date, responseEntity.getBody());
-  }
-
   private static void testControllerRest(RestTemplate template, String microserviceName) {
     String prefix = "cse://" + microserviceName;
 
@@ -340,7 +329,6 @@
   }
 
 
-
   private static void testSpringMvcDefaultValuesRest(RestTemplate template, String microserviceName) {
     String cseUrlPrefix = "cse://" + microserviceName + "/SpringMvcDefaultValues/";
     String result = template.getForObject(cseUrlPrefix + "/query?d=10", String.class);
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdSvc.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdSvc.java
new file mode 100644
index 0000000..98592c9
--- /dev/null
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdSvc.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.demo.springmvc.client;
+
+import java.util.Date;
+
+import org.apache.servicecomb.demo.CategorizedTestCase;
+import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.demo.springmvc.client.ThirdSvc.ThirdSvcClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+@Component
+public class TestThirdSvc implements CategorizedTestCase {
+  private ThirdSvcClient client;
+
+  @Autowired
+  public void setThirdSvcClient(ThirdSvcClient client) {
+    this.client = client;
+  }
+
+  @Override
+  public void testAllTransport() throws Exception {
+    testResponseEntity();
+
+    testDifferentParameterName();
+  }
+
+  private void testDifferentParameterName() {
+    String result = client.getAuthorization("test", "param", "auth");
+    TestMgr.check("testparamauth", result);
+  }
+
+  private void testResponseEntity() {
+    Date date = new Date();
+    ResponseEntity<Date> responseEntity = client.responseEntity(date);
+    TestMgr.check(date, responseEntity.getBody());
+  }
+}
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ThirdSvc.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ThirdSvc.java
index 070ca10..3cbd8dd 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ThirdSvc.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ThirdSvc.java
@@ -29,9 +29,12 @@
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.Environment;
 import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestAttribute;
+import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Content;
@@ -51,6 +54,12 @@
             @Header(name = "h2", schema = @Schema(implementation = String.class))})
     @RequestMapping(path = "/responseEntity", method = RequestMethod.POST)
     ResponseEntity<Date> responseEntity(@RequestAttribute("date") Date date);
+
+    @GetMapping(value = "/getAuthorization", produces = {"application/json"})
+    String getAuthorization(
+        @RequestHeader(value = "test") String test,
+        @RequestParam(value = "param") String param,
+        @RequestHeader("Authorization") String authorization);
   }
 
   @Bean
diff --git a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
index 8ea395a..ded1680 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
+++ b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/CodeFirstSpringmvc.java
@@ -148,6 +148,15 @@
     return new ResponseEntity<>(date, headers, HttpStatus.ACCEPTED);
   }
 
+  @GetMapping(value = "/getAuthorization", produces = {"application/json"})
+  public String getAuthorization(
+      @RequestHeader(value = "test") String test,
+      @RequestParam(value = "param") String param,
+      @Parameter(description = "Authorization header", required = true, in = ParameterIn.HEADER,
+          name = "Authorization") @RequestHeader("Authorization") String authorization) {
+    return test + param + authorization;
+  }
+
   @ApiResponse(responseCode = "200", content = @Content(schema = @Schema(implementation = Date.class))
       , description = "",
       headers = {@Header(name = "h1", schema = @Schema(implementation = String.class)),
diff --git a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentsMapperCreator.java b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentsMapperCreator.java
index 47ffd68..e47a5e8 100644
--- a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentsMapperCreator.java
+++ b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/ConsumerArgumentsMapperCreator.java
@@ -97,7 +97,8 @@
 
   @Override
   protected ArgumentMapper createKnownParameterMapper(int providerParamIdx, String invocationArgumentName) {
-    return new ConsumerArgumentSame(invocationArgumentName, invocationArgumentName);
+    return new ConsumerArgumentSame(this.providerMethod.getParameters()[providerParamIdx].getName(),
+        invocationArgumentName);
   }
 
   @Override
diff --git a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestJaxrsV2V2.java b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestJaxrsV2V2.java
index 9429f3e..44f1649 100644
--- a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestJaxrsV2V2.java
+++ b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestJaxrsV2V2.java
@@ -48,7 +48,7 @@
     Map<String, Object> arguments = new HashMap<>();
     arguments.put("x", 1);
     arguments.put("y", 2);
-    arguments.put("x-z", 3);
+    arguments.put("z", 3);
     SwaggerInvocation invocation = new SwaggerInvocation();
 
     Map<String, Object> result = mapper.invocationArgumentToSwaggerArguments(invocation, arguments);
@@ -70,7 +70,7 @@
     Map<String, Object> arguments = new HashMap<>();
     arguments.put("x", 1);
     arguments.put("y", 2);
-    arguments.put("x-z", 3);
+    arguments.put("z", 3);
     SwaggerInvocation invocation = new SwaggerInvocation();
 
     Map<String, Object> result = mapper.invocationArgumentToSwaggerArguments(invocation, arguments);
diff --git a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestSpringmvcV2V2.java b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestSpringmvcV2V2.java
index e31f922..0e5fcb4 100644
--- a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestSpringmvcV2V2.java
+++ b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/consumer/TestSpringmvcV2V2.java
@@ -30,11 +30,11 @@
 import org.apache.servicecomb.swagger.invocation.schemas.SpringmvcAddV2;
 import org.apache.servicecomb.swagger.invocation.schemas.SpringmvcAddWrapperV2;
 import org.apache.servicecomb.swagger.invocation.schemas.models.AddWrapperV2;
-
-import io.swagger.v3.oas.models.OpenAPI;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
+import io.swagger.v3.oas.models.OpenAPI;
+
 @SuppressWarnings("unchecked")
 public class TestSpringmvcV2V2 {
   @Test
@@ -48,7 +48,7 @@
     Map<String, Object> arguments = new HashMap<>();
     arguments.put("x", 1);
     arguments.put("y", 2);
-    arguments.put("x-z", 3);
+    arguments.put("z", 3);
     SwaggerInvocation invocation = new SwaggerInvocation();
 
     Map<String, Object> result = mapper.invocationArgumentToSwaggerArguments(invocation, arguments);
@@ -70,7 +70,7 @@
     Map<String, Object> arguments = new HashMap<>();
     arguments.put("x", 1);
     arguments.put("y", 2);
-    arguments.put("x-z", 3);
+    arguments.put("z", 3);
     SwaggerInvocation invocation = new SwaggerInvocation();
 
     Map<String, Object> result = mapper.invocationArgumentToSwaggerArguments(invocation, arguments);