浏览代码

1.camel errorPage 修复
2.eureka 获取微服务地址

huangzhiyong 8 年之前
父节点
当前提交
9f7db2fadf

+ 4 - 1
hos-camel2/pom.xml

@ -80,7 +80,10 @@
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
    </dependencies>
</project>

+ 2 - 0
hos-camel2/src/main/java/camel/HosCamelApplication.java

@ -2,11 +2,13 @@ package camel;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
/**
 * Basic Spring Boot application.
 */
@SpringBootApplication
@EnableEurekaClient
public class HosCamelApplication {
    public static void main(String[] args) {

+ 31 - 2
hos-camel2/src/main/java/camel/gateway/processor/GatewayProcessor.java

@ -7,20 +7,31 @@ import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Component
public class GatewayProcessor implements Processor {
    static Map<String, AppApi> apiMap = new HashMap<>();
    static final String agUrl = "http://192.168.1.221:10000";
    @Autowired
    ParamVerifyBean paramSign;
    @Autowired
    private DiscoveryClient discoveryClient;
    public void process(Exchange exchange) throws Exception {
        Map<String, Object> headers = exchange.getIn().getHeaders();
@ -108,7 +119,6 @@ public class GatewayProcessor implements Processor {
        try {
            String sign = params.get("sign").toString();                     // 簽名
            ParamVerifyBean paramSign = new ParamVerifyBean();
            paramSign.addParam(params);
//            paramSign.genParam();
            //TODO 获取app secret传入验证
@ -172,7 +182,11 @@ public class GatewayProcessor implements Processor {
            methodMap.put("3", "put");
            JsonNode jsonNode = objectMapper.readValue(param, JsonNode.class);
            String url = appApi.getMicroServiceUri().split(",")[0];
            String url = serviceUrl(appApi.getMicroServiceName());
            if (StringUtil.isEmpty(url)){
                return "";
            }
            final String[] endPoint = {"restlet:" + url + appApi.getMsMethodName() + "?socketTimeout=60000&connectionTimeout=60000&restletMethod=" + methodMap.get(appApi.getMethod())};
            final String[] body = {""};
            appApi.getParameters().forEach(p -> {
@ -254,4 +268,19 @@ public class GatewayProcessor implements Processor {
        }
    }
    /**
     * 通过服务名获取微服务地址
     * @param serviceName  微服务名
     * @return
     */
    public String serviceUrl(String serviceName) {
        List<ServiceInstance> instances = discoveryClient.getInstances(serviceName);
        if (instances!=null && !instances.isEmpty()){
            ServiceInstance serviceInstance = instances.get(0);
            return serviceInstance.getUri().toString();
        }else {
            return null;
        }
    }
}

+ 2 - 0
hos-camel2/src/main/java/camel/gateway/processor/ParamVerifyBean.java

@ -2,6 +2,7 @@ package camel.gateway.processor;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.encrypt.MD5;
import org.springframework.stereotype.Component;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
@ -15,6 +16,7 @@ import java.util.TreeMap;
 * @vsrsion 1.0
 * Created at 2017/3/15.
 */
@Component
public class ParamVerifyBean {
    private final String version = "1.0";

+ 1 - 1
hos-camel2/src/main/java/camel/gateway/route/GatewayRouterBuilder.java

@ -44,7 +44,7 @@ public class GatewayRouterBuilder extends RouteBuilder {
                .routingSlip(method(GatewayProcessor.class, "route"))
                .log(body().toString());
        from("jetty:http://0.0.0.0:9999/error")
        from("jetty:http://0.0.0.0:9999/error/{error}")
                .choice()
                .when(header(Exchange.HTTP_URI).contains("paramError")).bean(new ErrorHandle(), "paramError")
                .when(header(Exchange.HTTP_URI).contains("outdataError")).bean(new ErrorHandle(), "outdataError")

+ 5 - 1
hos-camel2/src/main/resources/application.yml

@ -7,4 +7,8 @@ server:
---
spring:
  profiles: dev
  profiles: dev
eureka:
  client:
    serviceUrl:
      defaultZone: http://192.168.1.221:8761/eureka/