스프링 부트를 사용하여 마이크로 서비스 프로젝트를 개발 중입니다. 여기서 UI 페이지는 별도의 마이크로 서비스와 별도의 마이크로 서비스에있는 프록시에 있습니다. zuul 마이크로 서비스를 통해 UI 페이지에 액세스하고 싶습니다. 아래에 프로젝트 구조를 추가했습니다.zuul 프록시를 통해 다른 마이크로 서비스에 액세스하는 방법
UiService Application.properties :
server.port=8090
spring.mvc.view.prefix: /WEB-INF/views/
spring.mvc.view.suffix: .jsp
spring.application.name=ui
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
eureka.instance.preferIpAddress=true
eureka.instance.leaseRenewalIntervalInSeconds=5
zuulService application.yml :
server:
port: 8080
eureka:
instance:
leaseRenewalIntervalInSeconds: 10
statusPageUrlPath: /info
healthCheckUrlPath: /health
logging:
level:
ROOT: INFO
org.springframework.web: DEBUG
zuul:
routes:
ui:
url: http://localhost:8090
ribbon:
eager-load:
enabled: false
내 고정 표시기의 작성 파일 :
version: '3'
services:
eureka:
build: eurekaService
ports:
- "8761:8761"
zuul:
build: zuulService
links:
- eureka
ports:
- "8080:8080"
turbine:
build: turbineService
links:
- eureka
ports:
- "8989:8989"
ui:
build: uiService
links:
- eureka
ports:
- "8090:8090"
uiSer 그 구조 :
내 유레카 서비스 페이지 :
실행 고정 표시기에서이 프로젝트 (고정 표시기-구성까지 -d), 후 나는 로그인에 액세스하려고 해요 때 화면 (uiService 내에서 사용할 수 있음)이 예외로 표시됩니다. 어떻게 해결할 수 있을까요?
UIService 홈페이지 방법 :
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
public class UIApplication {
public static void main(String[] args) {
SpringApplication.run(UIApplication.class, args);
}
}
uiService의 pom.xml 파일은 :
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.scm</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>uiService</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
일단 내가 로그인 페이지를 표시하는 동안 Zuul 프록시를 사용하면 결과 (이미 첨부 된 SS)와 동일한 페이지를 얻게됩니다. url : localhost : 8080/ui/login ..... docker에 이미지를 배포하는 동안 오류가 발생하지 않았습니다 (docker-up -d). –
공유 하시겠습니까? pom.xml, 스프링 부트 버전을 사용하고 있으며 UIController는 GET/login으로 매핑합니까? 나는 1.5.2 버전을 사용하고 – ootero
, getmapping는 uiController '@RequestMapping (값 = "/ 로그인"방법 = RequestMethod.GET)에 \t 공공 문자열 getlogin이() { \t \t 반환 "로그인"; \t} 위의 ' , 내 uiService pom.xml을 추가했습니다. –