|
@ -8,6 +8,7 @@ import com.yihu.hos.core.http.HttpClientKit;
|
|
import org.apache.camel.Exchange;
|
|
import org.apache.camel.Exchange;
|
|
import org.apache.camel.Processor;
|
|
import org.apache.camel.Processor;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.cloud.client.ServiceInstance;
|
|
import org.springframework.cloud.client.discovery.DiscoveryClient;
|
|
import org.springframework.cloud.client.discovery.DiscoveryClient;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
@ -18,6 +19,7 @@ import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.Calendar;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Stream;
|
|
import java.util.stream.Stream;
|
|
@ -180,13 +182,12 @@ public class GatewayProcessor implements Processor {
|
|
methodMap.put("3", "put");
|
|
methodMap.put("3", "put");
|
|
|
|
|
|
JsonNode jsonNode = objectMapper.readValue(param, JsonNode.class);
|
|
JsonNode jsonNode = objectMapper.readValue(param, JsonNode.class);
|
|
// String url = serviceUrl(appApi.getMicroServiceName());
|
|
|
|
String url = brokerUrl;
|
|
|
|
|
|
String url = serviceUrl(appApi.getMicroServiceName());
|
|
if (StringUtil.isEmpty(url)) {
|
|
if (StringUtil.isEmpty(url)) {
|
|
return "";
|
|
|
|
|
|
url = appApi.getMicroServiceUri();
|
|
}
|
|
}
|
|
|
|
|
|
final String[] endPoint = {"restlet:" + appApi.getMicroServiceUri() + appApi.getMsMethodName() + "?socketTimeout=60000&connectionTimeout=60000&restletMethod=" + methodMap.get(appApi.getMethod())};
|
|
|
|
|
|
final String[] endPoint = {"restlet:" + url + appApi.getMsMethodName() + "?socketTimeout=60000&connectionTimeout=60000&restletMethod=" + methodMap.get(appApi.getMethod())};
|
|
final String[] body = {""};
|
|
final String[] body = {""};
|
|
appApi.getParameters().forEach(p -> {
|
|
appApi.getParameters().forEach(p -> {
|
|
JsonNode paramNode = jsonNode.get(p.getName());
|
|
JsonNode paramNode = jsonNode.get(p.getName());
|
|
@ -274,24 +275,35 @@ public class GatewayProcessor implements Processor {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public String serviceUrl(String serviceName) {
|
|
public String serviceUrl(String serviceName) {
|
|
HTTPResponse response = HttpClientKit.get(brokerUrl + "/esb/webservice/host?serviceName=" + serviceName);
|
|
|
|
if (response.getStatusCode() != 200) {
|
|
|
|
System.out.println("获取服务地址请求失败!");
|
|
|
|
return "";
|
|
|
|
|
|
List<ServiceInstance> instances = discoveryClient.getInstances(serviceName);
|
|
|
|
if (instances != null && !instances.isEmpty()) {
|
|
|
|
int index = (int) (Math.random() * instances.size()); //随机获取其中一个服务
|
|
|
|
ServiceInstance serviceInstance = instances.get(index);
|
|
|
|
return serviceInstance.getUri().toString();
|
|
|
|
} else {
|
|
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
return response.getBody();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
public String nodeValue(JsonNode node){
|
|
|
|
|
|
public String nodeValue(JsonNode node) {
|
|
Object value = null;
|
|
Object value = null;
|
|
try {
|
|
try {
|
|
switch (node.getNodeType().name()){
|
|
|
|
case "NUMBER" : value = node.asInt();break;
|
|
|
|
case "STRING" : value = node.asText();break;
|
|
|
|
case "BOOLEAN" : value = node.asBoolean();break;
|
|
|
|
case "OBJECT" : value = node.toString();break;
|
|
|
|
default:value = "";break;
|
|
|
|
|
|
switch (node.getNodeType().name()) {
|
|
|
|
case "NUMBER":
|
|
|
|
value = node.asInt();
|
|
|
|
break;
|
|
|
|
case "STRING":
|
|
|
|
value = node.asText();
|
|
|
|
break;
|
|
|
|
case "BOOLEAN":
|
|
|
|
value = node.asBoolean();
|
|
|
|
break;
|
|
|
|
case "OBJECT":
|
|
|
|
value = node.toString();
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
value = "";
|
|
|
|
break;
|
|
}
|
|
}
|
|
return URLEncoder.encode(value.toString(), "UTF-8");
|
|
return URLEncoder.encode(value.toString(), "UTF-8");
|
|
} catch (UnsupportedEncodingException e) {
|
|
} catch (UnsupportedEncodingException e) {
|