Как запустить @RestController на другом порту?

Я использую spring-rest создать некоторые @RestController сервлеты. Приложение запускается не на веб-сервере, а в виде простого инструмента командной строки со встроенным tomcat.

Большинство из них должны работать на общедоступном порту, который указан с помощью server.port=80 имущество.

Вопрос: как мне бегать по другому @RestController на разных портах? Так что некоторые из них доступны только внутри?

@RestController 
@RequestMapping("test")
public class TestServlet {

    @RequestMapping(value = "/", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    public String test() { return "OK"; }
}

2 ответа

Решение

Я бы порекомендовал использовать прокси. Это может быть веб-сервер Apache или Ngix. Вам необходимо настроить два виртуальных хоста (в разных портах) на веб-сервере. И перенаправьте вызов на ваш сервер Tomcat. Вы можете загружать свои контроллеры разными путями, чтобы было проще проксифицировать вызовы от веб-сервера.

Наконец ваши клиенты делают вызов через веб-сервер, а не напрямую через tomcat.

Если вы используете Spring Boot, я думаю, вам стоит проверить Spring Boot Actuator. Ваше приложение может быть настроено на один порт, в то время как привод отключается от другого.

Вот руководство, которое показывает, как изменить порт для привода - https://spring.io/guides/gs/actuator-service/

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