Spring cloud: перенаправление с сервера ресурсов на сервер пользовательского интерфейса

Я построил простую микросервисную архитектуру с четырьмя компонентами: a. Сервер шлюза с использованием Zuul-Eureka b. Ui Server c. Сервер ресурсов d. сервер конфигурации

Ниже приведены мои конфигурации

а. Сервер шлюза

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/

Я настроил все четыре серверных сервера, и мой config, ui-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" из кода входа в мой ui-сервер на localhost:8080/categoryService/getUi, тогда как мне получить ответ на мой контроллер ui-сервера?

Как то так на сервере ресурсов (категория Service)

@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";
}

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

0 ответов

Другие вопросы по тегам