Я построил простую микросервисную архитектуру с четырьмя компонентами: a.Сервер шлюза с использованием Zuul-Eureka b.Ui Server c.Сервер ресурсов d.сервер конфигурации
Ниже приведены мои конфигурации
a.Сервер шлюза
eureka.client.region = default
eureka.client.registryFetchIntervalSeconds = 5
zuul.routes.categoryService.path=/categoryService/**
zuul.routes.categoryService.sensitive-headers=Set-Cookie,Authorization
zuul.routes.ui-server.path=/ui-server/**
zuul.routes.ui-server.sensitive-headers=Set-Cookie,Authorization
hystrix.command.ui-
server.execution.isolation.thread.timeoutInMilliseconds=600000
ui-сервер
spring.application.name=ui-server
server.port=8084
eureka.client.region = default
eureka.client.registryFetchIntervalSeconds = 5
eureka.client.serviceUrl.defaultZone=http://localhost:8082/eureka/
spring.mvc.view.prefix: /
spring.mvc.view.suffix: .jsp
Сервер ресурсов [categoryService]
spring.application.name=categoryService
server.port=8083
eureka.client.region = default
eureka.client.registryFetchIntervalSeconds = 5
eureka.client.serviceUrl.defaultZone=http://localhost:8082/eureka/
Я настроил все четыре сервера сервера и мой конфиг, пользовательский интерфейс-server и categoryService успешно зарегистрированы в Zuul (шлюз).
Когда я запускаю localhost:8080/ui-server/login
Я вижу свою страницу входа
@Controller
public class Sample {
@RequestMapping(value="/login", method=RequestMethod.GET)
public String hello() {
return "login_register";
}
@RequestMapping(value="/login", method=RequestMethod.POST)
public String hello1() {
return "login_register";
}
}
<form class="form" method="POST"
action="http://localhost:8080/categoryService/category/getUi">
<div class="form-group ${error != null ? 'has-error' : ''}">
<span>${message}</span>
<input class="form-control" id="username" type="text"
name="username" placeholder="Username"/>
</div>
<div class="form-group">
<input class="form-control" id="password" type="password"
name="password" placeholder="Password"/>
</div>
<span style="color: red; size: 20px;">${error}</span>
<div class="form-group">
<button class="btn btn-round btn-b">Login</button>
</div>
<div class="form-group"><a href="">Forgot Password?</a></div>
</form>
Когда я запускаю localhost:8080/categoryService/getAllCategories
Ятакже может видеть ответ.
@RequestMapping(value="/getAllCategoryId", method=RequestMethod.POST)
@ResponseBody
public Object getAllCategoryId(@RequestParam(value="userId") Long
userId,HttpServletRequest request) {
//Long userId =
((UserInfo)request.getAttribute("loggedInUser")).getId();
//List<Long> categoryIdList = categoryService.getAllCategoryId();
return sampleName;
}
Таким образом, все конфигурации в порядке.
Мой вопрос, предположим, я выполняю действие формы "post" из моего кода входа в систему пользовательского интерфейса.на localhost: 8080 / categoryService / getUi, тогда как мне получить ответ на мой контроллер ui-сервера?
Примерно так на сервере ресурсов (categoryService)
@RequestMapping(value="/getUi1", method=RequestMethod.POST)
public Object getUi() {
//Long userId =
((UserInfo)request.getAttribute("loggedInUser")).getId();
//List<Long> categoryIdList = categoryService.getAllCategoryId();
return "forward:/ui-server/login/";
//return "ui-server/login";
//return "/ui-server/login";
//return "http://localhost:8080/ui-server/login";
}
Кажется, что ничего из вышеприведенного возврата не работает.Как перенаправить с моего сервера ресурсов на сервер пользовательского интерфейса через мой шлюз?