Spring cloud: перенаправление с сервера ресурсов на сервер пользовательского интерфейса - PullRequest
0 голосов
/ 22 сентября 2018

Я построил простую микросервисную архитектуру с четырьмя компонентами: 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";
}

Кажется, что ничего из вышеприведенного возврата не работает.Как перенаправить с моего сервера ресурсов на сервер пользовательского интерфейса через мой шлюз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...