Невозможно получить доступ к удаленному загрузочному приложению Spring из браузера - PullRequest
0 голосов
/ 14 декабря 2018

Проверены контрольные вопросы:

  1. Сервер Tomcat не работает «внешне»
  2. Служба загрузки Spring работает локально, но не удаленно
  3. Как настроить встроенный Tomcat, интегрированный с Spring, для прослушивания запросов на IP-адрес, кроме localhost?

У нас приложение Spring Boot развернуто как автономный исполняемый файл Java во встроенномСервер Tomcat в среде Linux 192.168.22.125.В той же среде у нас также есть приложение Weblogic 12C, работающее на другом порту (9045), и мы можем получить к нему доступ через браузер.Предполагая, что у нас есть конечная точка отдыха в приложении Spring Boot как 192.168.22.125:8888/jobs/uploads, мы можем получить доступ к этой конечной точке из приложения Java (также развернутого в Weblogic), как показано ниже.

    URL url = new URL(serverURL);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    ...
    ...

Но мы не можем получить к нему доступ ни из браузера, ни из wget в windows powershell.Обратившись к вопросу 1, мы обнаружили, что проблема связана с браузером. Что касается вопроса 2, решение может заключаться в добавлении порта в конфигурацию маршрутизатора (это будет последний вариант, если ничего не работает).И когда я попробовал netstat на шпаклевке, подключенной к этой среде для порта 8888, вывод составил

tcp46      0      0  :::.8888                 :::.*   LISTEN

Но для порта 9045, на котором работает приложение Weblogic, вывод составил

tcp46      0      0  192.168.22.125:9045      *.*     LISTEN

Итак, после обращения к вопросу 3 я попытался server.address=192.168.22.125 с надеждой, что Tomcat свяжет this и начнет слушать запросы.Несмотря на то, что вывод netstat изменился, результат тот же (может быть, мне здесь не хватает логического понимания?).

Итак, мои вопросы:

  1. Какие другие решения делаютМне нужно попробовать?
  2. Почему приложение, развернутое в Weblogic, доступно, а не приложение Spring Boot из браузера?Какие дополнительные настройки / конфигурации необходимо выполнить?
  3. Почему запрос из приложения Java (развернутого в Weblogic) выполняется успешно, а не из браузера?Это потому, что приложение Java работает в той же среде, что и приложение загрузки Spring, или некоторые проверки не выполняются в случае таких запросов?

Любые дополнительные ресурсы для дальнейшего понимания этих сетевых вещей были бы очень полезны.Спасибо.

1 Ответ

0 голосов
/ 14 декабря 2018

Ответ: С помощью дедукции кажется, что вы можете получить доступ к приложению Weblogic через порт 80, поскольку ваш маршрутизатор имеет перенаправленный порт 80. Если приложение Java работает на том же экземпляре Linux (то есть на локальном хосте)может получить доступ к API REST, тогда, очевидно, вам нужно перенаправить порт API REST в настройках брандмауэра - порт 8888 в вашем примере.

Если между машиной Windows и службой REST существует брандмауэр, вы не сможете получить к нему прямой доступ без переадресации порта.

Кроме того, убедитесь, что вы включили нестандартный порт в свой URL следующим образом:

http://192.168.22.125:8888/jobs/uploads

Допущения: Если я понимаю вашевопросы, у вас есть экземпляр Linux, на котором размещено веб-приложение Weblogic и API-интерфейс Spring Boot REST.Вы можете получить доступ к приложению Weblogic непосредственно в браузере через удаленное соединение с компьютера под управлением Windows, но не через API REST.Приложение Java на том же экземпляре Linux может получить доступ к API REST.Если я правильно понимаю, между машиной Windows и экземпляром Linux также есть межсетевой экран.

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