heyile opened a new issue, #3687:
URL: https://github.com/apache/servicecomb-java-chassis/issues/3687

   发现一个场景, 不确定是bug, 还是就是这样设计的. Server 端的变量名要和 client 端接口的变量名一模一样. 如果是设计 感觉挺怪的.
   
    就以咱们 **java-chassis-samples** 的 **springmvc-sample** 为例
   
   SERVER:
   
   ```java
   
   @RestSchema(schemaId = "SpringmvcBasicEndpoint")
   @RequestMapping(path = "/springmvc/basic", produces = 
MediaType.APPLICATION_JSON)
   public class SpringmvcBasicEndpoint {
     @RequestMapping(path = "/postObject", method = RequestMethod.POST)
     public SpringmvcBasicResponseModel postObject(@RequestBody 
SpringmvcBasicRequestModel requestModel) {
       SpringmvcBasicResponseModel model = new SpringmvcBasicResponseModel();
       model.setResponseId(requestModel.getRequestId());
       model.setResultMessage(requestModel.getName());
       return model;
     }
   
   
   ```
   
   Client POJO 定义:
   
   
   ```java
   
   // 没问题的调用
   public interface SpringmvcBasicService {
     SpringmvcBasicResponseModel postObject(SpringmvcBasicRequestModel 
requestModel);
   
     List<SpringmvcBasicResponseModel> 
postObjectList(SpringmvcBasicRequestModel requestModel);
   }
   
   // 有问题的调用,  SpringmvcBasicService::postObject  只有一个参数传输.
   //  只是把变量名字改了一下 从  requestModel 变为 basicRequestModel, 就会触发调用失败
   public interface SpringmvcBasicService {
     SpringmvcBasicResponseModel postObject(SpringmvcBasicRequestModel 
basicRequestModel);
   
     List<SpringmvcBasicResponseModel> 
postObjectList(SpringmvcBasicRequestModel requestModel);
   }
   
   
   ```
   
   debug 之后, 发现关键代码细节:
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to