В логе openfire следующее:
2016.04.01 14:35:18 org.jivesoftware.openfire.nio.ConnectionHandler - Closing connection due to exception in session: (0x00000002: nio socket, server, /x.x.x.x:50558 => /y.y.y.y:5222) java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView; at org.jivesoftware.openfire.roster.Roster.broadcastPresence(Roster.java:628) [пропущен кусок лога] at java.lang.Thread.run(Thread.java:745)
В багтрекере openfire есть несколько записей на эту тему (OF-965, OF-1115, OF-1116). Причина в том, что openfire 4.0.2 скомпилирован с использованием java 8.x, а в Wheezy доступна только java 7.x. Тут более детально описан источник несовместимости.
Я могу понять позицию разработчиков openfire на счет EOL java 7, но в этом случае нужно изменить зависимости пакета и обновить документацию - тогда никаких вопросов не будет. А пока же заявлена поддержка java 7, но работать будет только с java 8.
UPDATE: Собрал openjdk-8 под Debian Wheezy. Установил на тестовый сервер и попробовал удалить старый openjdk-7 - фиг вам. Оказывается он еще и в зависимостях пакета прибит гвоздями:
$ apt-cache show openfire | grep Depends Pre-Depends: openjdk-7-jre-headless | openjdk-7-jre | oracle-java7-jre
Перепаковывать лениво - остановил openfire и прописал в /etc/default/openfire нужный JAVA_HOME. После этого все заработало.
Добрый день!
ОтветитьУдалитьа подскажите какой параметр в default/openfire вы прописали?
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
Удалитьэто когда вы уже руками собрали и добавили openjdk-8 , а если оставлять 7 версию, то JAVA_HOME прописать на ..../jvm/java-7-openjdk получается и будет работать? или так и не будет?
Удалитьвсе попробовал, савсем не работает с 7 версией :(
ОтветитьУдалитьтолько сейчас увидел ссылку на более детально описан источник несовместимости.
Пакет с java 7 не будет работать совсем. Для себя я собрал бэкпорт openjdk 8 для wheezy и поправил зависимости пакета, чтобы не пришлось держать java 7 и java 8.
Удалить