1、情景描述
1. 客户端向网关发起 HTTP POST 请求,Content-Type = application/json,消息体为:
{
"custid": "client", // 应用id
"appid": "sdeserver", // 服务端id
"bean": "sdeBean",
"method": "sign",
"args": "[InputParam]" // InputParam 对象
}
2. 网关接受到请求,通过请求 Body 中的 appid(远程服务在 Zookeeper 中注册的 名称),获取远程服务调用信息(ip + port),然后使用 Netty,与远程服务建立连接,将调用信息发送给 远程服务。
3. 远程服务通过反射,获取 bean 对应的类,使用MethodInvoker ,获取对应的方法。在获取方法时报错:
java.lang.NoSuchMethodException: com.sde.auth.beans.SdeBean.sign(java.util.LinkedHashMap)
从错误信息中可以看出,原本 SdeBean.sign(InputParam),实际传入的是 LinkedHash