Сервер Solr недоступен из клиента Java после сна OS X - PullRequest
0 голосов
/ 20 февраля 2019

У меня на ноутбуке Mac хорошо работает локальный стек разработки, соответствующий производственной площадке.Все работает на разных портах на локальном хосте:

  • Solr 6.5.1
  • Postgres
  • Spring Boot

Все работает, пока язакройте ноутбук.Затем, после открытия ноутбука, веб-приложение, которое использует Java-клиент Solr, больше не может получить доступ к серверу Solr:

org.apache.solr.client.solrj.SolrServerException: No live SolrServers available to handle this request
...
Caused by: java.net.UnknownHostException: fe80: nodename nor servname provided, or not known
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[?:1.8.0_162]
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[?:1.8.0_162]
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[?:1.8.0_162]
    at java.net.InetAddress.getAllByName0(InetAddress.java:1276) ~[?:1.8.0_162]
    at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[?:1.8.0_162]
    at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[?:1.8.0_162]
    at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) ~[httpclient-4.5.6.jar:4.5.6]
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:263) ~[httpclient-4.5.6.jar:4.5.6]

Но я все еще могу вручную запросить штраф сервера Solr на localhost через curl иливеб-интерфейс, даже тот же запрос работает нормально.И связь с postgres всегда в порядке, несмотря ни на что.Просто соединение клиента Java с solr не удается.

Это состояние проблемы сохраняется в результате:

  • остановки и запуска Spring Boot
  • остановки и запуска Solr
  • перезапуск IDE
  • запуск сайта через командную строку
  • запуск сайта через IDE
  • циклическое переключение всех сетевых интерфейсов через ifconfig ... down / up
  • любая комбинациявыше

Единственный способ восстановить это соединение - перезагрузить компьютер.Эта проблема сохранялась на нескольких ноутбуках и версиях OS X на протяжении многих лет, но в настоящее время я нахожусь на 10.13.6 high sierra.

Мои вопросы:

  1. есть исправлениеЧтобы предотвратить возникновение этой проблемы
  2. есть хотя бы более быстрый способ восстановить подключение без перезагрузки компьютера

1 Ответ

0 голосов
/ 22 февраля 2019

Это сообщение в блоге решило мою проблему https://thoeni.io/post/macos-sierra-java/

По сути, кажется, что существует масса проблем (которые нельзя было игнорировать!) Вокруг Java, испытывающего трудности с разрешением проблемы.локальное имя хоста в определенных обстоятельствах, и все они решаются с помощью этого простого исправления:

  1. введите команду hostname в своем терминале, чтобы определить ваше имя хоста.Скажем, ответ - ВАШЕ ИМЯ-ХОСТ.

  2. добавьте или измените эти записи в своем /etc/hosts:

127.0.0.1 localhost YOUR-HOSTNAME ::1 localhost YOUR-HOSTNAME

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