마이크로 마이크로 서비스 게이트웨이는 --- 다른 서비스를 호출

 


우선, 기록 필터 ZuulFilter를 상속하고, 상기 재기록 run () 메소드, 정보 요청 개체에 대한 액세스 :
CTX = RequestContext.getCurrentContext RequestContext (); 
HttpServletRequest의 요청 ctx.getRequest = (); 
문자열 servletPath request.getServletPath = () 
정보를 GET 요구 객체 요청 후에 얻어 질 수있다 :
문자열 accessSys = request.getParameter ( "accessSys"); 
문자열 paramData = getRequestBody (요청);

개인 문자열 getRequestBody (HttpServletRequest의 요청) { 
시도 {
의 InputStream v_inputstream = request.getInputStream ();
를 ByteArrayOutputStream baos = 새를 ByteArrayOutputStream ();
INT (X) = 0;
반면 ((X = v_inputstream.read ()) = -1!) {
baos.write (X);
}
baos.flush ();
새로운 String (baos.toByteArray (), UTF_8)을 반환;
} 캐치 (예외 전자) {
logger.error (e.getMessage (), 전자);
}
반환 "";
}

 다음과 같이 2, 구성 정보를 가로 지르는 라우팅 경로의 라우팅 정보는 다음과 같습니다

@ConfigurationProperties (접두사 = "application.myroutes") 
공용 클래스 MyRoutesConfig { 

	
	개인지도 <문자열, 문자열> 경로; 

	공개지도 <문자열, 문자열> getRoutes () { 
		반환 경로; 
	} 

	공개 무효 setRoutes (MAP <문자열, 문자열> 루트) { 
		this.routes =의 경로; 
	} 
}
다음과 같이 구성 파일은 다음과 같습니다 

# 사용자 정의 필터 노선 참조 : RestFaceFilter.java의
파일 응용 프로그램 :
myroutes :
경로 : {
- 서비스 : '전자 여권 플랫폼',
ProxyService : '전자 여권-exservice'
}
만약 (! 경로 = NULL) { 
            설정 <문자열> keySet 반환 = routes.getRoutes () keySet 반환 ().; 
            (문자열 STR : keySet 반환)에 대한 { 
// logger.info ( "경로 키를 얻을 : {}", STR); 
                경우 (servletPath.startsWith ( "/"+ STR + "/")) { 
                    restface_forward = routes.getRoutes () 수 (STR).; 
                    단절; 
                } 
            } 
        }

  

 

추천

출처www.cnblogs.com/otways/p/11411598.html