完成自动Dubbo GenericService设置参数

This commit is contained in:
eson 2019-07-09 01:31:26 +08:00
parent 8624659273
commit dba005c31b

View File

@ -58,33 +58,32 @@ public class DubboGatewayFilterFactory extends AbstractGatewayFilterFactory<Dubb
GenericServicePool gsPool = appContext.getBean(GenericServicePool.class); GenericServicePool gsPool = appContext.getBean(GenericServicePool.class);
GenericService gs = gsPool.get(uri); GenericService gs = gsPool.get(uri);
ServerHttpRequest req = exchange.getRequest(); ServerHttpRequest req = exchange.getRequest();
Flux<DataBuffer> body = req.getBody(); Flux<DataBuffer> body = req.getBody();
HttpMethod m = req.getMethod();
MultiValueMap<String, String> queryParams = req.getQueryParams(); MultiValueMap<String, String> queryParams = req.getQueryParams();
body.map( buffer -> { // body.map( buffer -> {
byte[] bytes = new byte[buffer.readableByteCount()]; // byte[] bytes = new byte[buffer.readableByteCount()];
buffer.read(bytes); // buffer.read(bytes);
DataBufferUtils.release(buffer); // DataBufferUtils.release(buffer);
try { // try {
String bodyString = new String(bytes, "utf-8"); // String bodyString = new String(bytes, "utf-8");
log.error("test body"); // log.error("test body");
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} // }
}); // return Flux.just(bytes);
// });
List<String> methodString = queryParams.get("method"); List<String> methodString = queryParams.get("method");
List<String> params = queryParams.get("params");
if(methodString.size() != 0) { if(methodString.size() != 0) {
// special // special
Object result = gs.$invoke(methodString.get(0), new String[] { "java.lang.String" }, new Object[] { "222" }); List<String> paramTypes = mehtods.get(methodString.get(0));
// gsPool.add(rkey, gs); Object result = gs.$invoke(methodString.get(0), Arrays.copyOf(paramTypes.toArray(), paramTypes.size(), String[].class), params.toArray());
if (result != null) { if (result != null) {
ServerHttpResponse response = exchange.getResponse(); ServerHttpResponse response = exchange.getResponse();
return response.writeWith(Mono return response.writeWith(Mono