## 背景
我在写一个测试 Dubbo 接口的通用工具,基本流程就是  `HTTP/JSON` -> `泛化调用(我实现的工具)` -> `Dubbo 
Providers`。按照[使用泛化调用](http://dubbo.apache.org/zh-cn/docs/user/demos/generic-reference.html)的文档,这个是可以实现的。

按照 `GenericService` 的定义
```java
public interface GenericService {

    /**
     * Generic invocation
     *
     * @param method         Method name, e.g. findPerson. If there are 
overridden methods, parameter info is
     *                       required, e.g. findPerson(java.lang.String)
     * @param parameterTypes Parameter types
     * @param args           Arguments
     * @return invocation return value
     * @throws Throwable potential exception thrown from the invocation
     */
    Object $invoke(String method, String[] parameterTypes, Object[] args) 
throws GenericException;

}
```
我需要知道 `方法名`, `方法的参数类型列表`, `实参列表`。
目前的假设条件(实际上满足,但我不想依赖这些条件)是:我没有 Dubbo Provider 的接口定义,就是我不知道 `Object 
$invoke(String method, String[] parameterTypes, Object[] args) ` 里面的 `method` 和 
`parameterTypes`。我可以获得 `ZK` 地址,及也知道 Provider 的地址,随即也可以知道 `method` 信息, 就是不知道 
`parameterTypes` 了。

## 现状

可以通过 Telnet 命令的  `ls -l XxxService` 知道 `parameterTypes` 的信息

## 期望
我这个工具是个后端服务,如果使用 `Telnet` 会比较麻烦,所以期望有没有提供直接通过 Provider 的地址和端口号,发送个内置的 
GenericService 服务
如有个:
`org.apache.dubbo.rpc.dubbo.telnet.ListTelnetService` 的服务
可以通过`.$invoke("lsDetail", new String[]{"java.lang.String"}, new 
Object[]{"XxxService"} )`,获得类似于 `ls -l XxxService` 的结果。
或者其他的比创建个Telnet 连接 再发送指令更简单些的方式。


[ Full content available at: 
https://github.com/apache/incubator-dubbo/issues/3161 ]
This message was relayed via gitbox.apache.org for 
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to