Содержание
- Отключение openfire через 5 секунд после запуска
- Спасибо за ответ.
- Конфигурация LDAP в Openfire Проблема: NullPointerException
- Исключение NullPointerException Java – Обнаружение, исправление и рекомендации
- ява.ланг.Исключение NullPointerException-одно из самых популярных исключений в программировании на Java. Любой, кто работает на java, должен был видеть, как это появляется из ниоткуда в автономной программе java, а также в веб-приложении java .
- Примеры исключений NullPointerException Java
- 1. Исключение NullPointerException при вызове метода экземпляра
- 2. Исключение Java NullPointerException при доступе/изменении поля нулевого объекта
- 3. Исключение Java NullPointerException при передаче значения null в аргументе метода
- 4. java.язык.Исключение NullPointerException, когда выбрасывается значение null
- 5. Исключение NullPointerException при получении длины массива null
- 6. Исключение NullPointerException при доступе к значению индекса нулевого массива
- 7. Исключение NullPointerException при синхронизации с нулевым объектом
- 8. Статус HTTP 500 java.lang.Исключение NullPointerException
- Как определить java.lang.Исключение NullPointerException
- Как исправить исключение NullPointerException
- Рекомендации по кодированию, чтобы избежать исключения NullPointerException
Отключение openfire через 5 секунд после запуска
Устанавливаю openfire (4.0.1), версия java
Устанавливаю в браузере, внутренняя база данных, подключение по openLDAP, опознаны пользователи и админ. Только очень долго думает при проверке. Отображает подключение к панели администратора выдает окно авторизации — и выбивает ошибку
Проверяю java командой
В логах сервера
Как-то надо специально java запускать для openfire? Или где-то еще смотреть причины отключения openfire?
лог сервера говорит что у тебя база не але (в ней скорее всего настройки).
с жабой корректный ключ -version
Ну вроде здесь все сказано.
ага. такая проблема судя по форуму была на венде. попробуй сделать поиск по имени файла openfire.lck и переместить его куда-нибудь (короче удалить сделав бэкап на всякий). судя по форуму попенфаер иногда забывает снять лок с базы после установки
Спасибо за ответ.
Файл с расширением .lck на моем Centos не обнаружен. Поиск «openfire» выдал четыре результата:
*саму директорию с установкой /opt/openfire;
*весь с закомменченным содержимым /etc/sysconfig/openfire;
* файл запуска /etc/rc.d/init.d/openfire;
*директория с документацией по Openfire /opt/openfire/documentation/docs/javadoc/org/jivesoftware/openfire.
Я переставляю openfire не первый раз (по одному из мануалов — достаточно в файле настроек openfire.xml закомментить предпоследнюю строку true и можно переустановить еще раз. Но видимо, этот способ не учитывает внутреннюю базу данных и ее очистку).
В директории /opt/openfire/embedded-db лежит три файла (больше ничего не указывает на внутреннюю БД).
и пустой openfire.log.
Внутреннюю базу данных как-то можно очистить и по новой установить, или весь openfire сносить надо?
Ок, тогда пачка вопросов
1) «устанавливаю» или «переустанавливаю»? потому что если просто затирать конфиг через setup true можно напороться на кучу багов, он для этого не предназначен (в плане там нет гарантий что оно корректно отработает)
2) в conf/openfire.xml есть что-либо про логи/пароль к базе?
3) выполняется ли еще хоть что-нибудь что может в теории держать лок на базу? ну мало ли установщик завис или старый инстанс еще в памяти
4) java всегда пишет что не может jvm создать?
5) насколько критична переустановка?
1) Переустанавливаю затиранием setup true. Про баги была не в курсе, но, да напоролась.
2) В conf/openfire.xml про логи/пароли не увидела
3) Про локальную базу. Установщик очень долго думал после каждого шага после выбора внутренней базы. Но установка завершилась успешно, браузер выдал-таки окно авторизации, при неправильном пароле ругнулся, при правильном — 500 ошибку выдал. Что такое инстанс — не знаю.
4) К java вопросов не было, команду /usr/bin/java -v нашла в инете, раньше проблем не было, и команду не запускала, поэтому вывод по JVM не скажу — не знаю. Могу на другой машине поставить по той же схеме.
5) Переустановка не критична, ставлю на новой машине. Подскажите, как правильно удалить на этой, просто через «yum remove http://disk.studiks.ru/src/xmpp/openfire-4.0.1-1.i386.rpm» — т.е. обратный процесс?
Проблема появляется не первый раз, и лечилась ранее установкой на другой машине. А тут надо именно на этой. Не поломать бы сам Сентос.
хоспаде, откуда оно? почему не с оф сайта? удаление просто и имени пакета, yum remove openfire .
какая все-таки версия java? четвертая ветка openfire на java 7 не работает емнип. да и вообще — какой дистрибутив? а то они сейчас упаковывают жабу прямо в пакет с openfire и не юзают системную
если перезапустить openfire попутно прибив все процессы которые могут его напоминать, тот же эффект?
кстати, на сервере графика есть? а то в /opt/openfire/bin должен лежать вьюер для внутренней базы, но ему графика нужна.
openfire — с оф.сайта, только версия старая, это я на свои репозитории залила)))
Версия java «openjdk version „1.8.0_131“» — указала в первом сообщении, или нужна другая версия? Я поняла, что это java 8, update 131, вроде последняя, обновилась вчера.
Или не так убиваю?
В /opt/openfire/bin есть viewer
вьюеру иксы нужны, он на свинге. ну если нет значит нет.
если процесса нет — ок.
опять же, если удаление не критично — можно попробовать удалить, проверить все ли удалилось (для надежности переименовать в /opt/openfire.bak если директория останется), скачать с оф сайта последнюю версию и переставить. мало ли что могло быть
upcFrost , Спасибо за поддержку))))
Удалила через yum -y remove openfire, директория осталась, переименовала. Новый openfire установила тоже с внутренней БД, проблем не возникло.
Буду знать, что через setup true «забивается и отказывается адекватно работать» внутренняя БД.
Еще раз спасибо за помощь.
Буду знать, что через setup true «забивается и отказывается адекватно работать» внутренняя БД
не то чтоб забивается и отказывается адекватно работать, просто там есть косяки свои. обычно пронесет, но иногда можно вляпаться
Источник
Конфигурация LDAP в Openfire Проблема: NullPointerException
Ниже представлена моя структура OpenLDAP:
+ → dc = test, dc = com (3) —> cn = admin + → ou = groups (3) | —> cn = admin | —> cn = irc | —> cn = пользователи | —> Создать новую запись здесь + → ou = users (4) | —> cn = user1 | —> cn = user2 | —> cn = user3 | —> cn = user4
Настройки в Openfire: Шаг 1: Порт: 389 Базовый DN: ou = пользователи, dc = test, dc = com Администратор DN: cn = admin, dc = test, dc = com
Шаг 2. Пользовательское сопоставление: Имя пользователя: uid
Шаг 3: Группа групп групп полей: cn Поле участника: uniqueMember Описание Поле: описание
Для следующего окна, когда я нажимаю Save и Continue, я получаю следующее исключение:
Проблема с доступом /setup/setup-admin-settings.jsp. Причина:
java.lang.NullPointerException на org.jivesoftware.openfire.admin.setup.setup_002dadmin_002dsettings_jsp._jspService (setup_002dadmin_002dsettings_jsp.java:99) на org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) в javax.servlet. http.HttpServlet.service(HttpServlet.java:820) в org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java: 1359) в com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) в com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) на org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1330) в org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java: 1330) at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50) на org.eclipse.jetty.servl et.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1330) на org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78) на org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java: 1330) на org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164) на org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1330) на org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) в org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) в org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) в org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) в org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) в org.eclipse.jetty.servlet. ServletHandler.doScope(ServletHandler.java:409) на org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) на org.eclipse.jetty.server.handler.C ontextHandler.doScope(ContextHandler.java:875) в org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) в org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java: 250) на org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) на org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) на org.eclipse.jetty.server.Server.handle(Server.java:349) в org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) на org.eclipse.jetty.server.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java: 919) на org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582) на org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) на org.eclipse.jetty.server. AsyncHttpConnection.handle(AsyncHttpConnection.java:51) в org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) на org.eclipse.jetty.io.nio.SelectChannelEnd Точка $ 1.run(SelectChannelEndPoint.java:44) на org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) на org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool. java: 533) в java.lang.Thread.run(Thread.java:701)
Также я сделал некоторые изменения, и мне удалось увидеть экран «Добавить администратора», но я не смог добавить ни одного из моих существующих пользователей LDAP. Это вызвало следующую ошибку:
Msgstr «Нет имени пользователя или указанного имени пользователя не найдено.»
Я перезапустил сервер, и с тех пор NullPointerException снова начал возвращаться. ((Ну, что заслуживает другого обсуждения, как только я это получу)
Где я иду не так?
FYI, как серверы, openfire, так и OpenLdap, работают на одних и тех же виртуальных машинах.
Источник
Исключение NullPointerException Java – Обнаружение, исправление и рекомендации
ява.ланг.Исключение NullPointerException является наиболее распространенным исключением в Java. Давайте рассмотрим примеры исключений NullPointerException, как их обнаружить и исправить.
Автор: Pankaj Kumar
Дата записи
ява.ланг.Исключение NullPointerException-одно из самых популярных исключений в программировании на Java. Любой, кто работает на java, должен был видеть, как это появляется из ниоткуда в автономной программе java, а также в веб-приложении java .
ява.ланг.Исключение NullPointerException-одно из самых популярных исключений в программировании на Java. Любой, кто работает на java, должен был видеть, как это появляется из ниоткуда в автономной программе java, а также в веб-приложении java .
Исключение NullPointerException является исключением во время выполнения, поэтому нам не нужно перехватывать его в программе. Исключение NullPointerException возникает в приложении, когда мы пытаемся выполнить какую-либо операцию над null , где требуется объект. Некоторые из распространенных причин исключения NullPointerException в программах Java являются:
- Вызов метода в экземпляре объекта, но во время выполнения объект равен нулю.
- Доступ к переменным экземпляра объекта, который является нулевым во время выполнения.
- Выбрасывание null в программе
- Доступ к индексу или изменение значения индекса массива, который равен нулю
- Проверка длины массива, который является нулевым во время выполнения.
Примеры исключений NullPointerException Java
Давайте рассмотрим некоторые примеры исключения NullPointerException в программах java.
1. Исключение NullPointerException при вызове метода экземпляра
Когда мы запускаем вышеуказанную программу, она выдает следующее сообщение об ошибке NullPointerException.
Мы получаем исключение NullPointerException в операторе t.foo(«Привет»); потому что “t” здесь равно нулю.
2. Исключение Java NullPointerException при доступе/изменении поля нулевого объекта
Приведенная выше программа выдает следующую трассировку стека исключений NullPointerException.
Исключение NullPointerException создается в операторе int.x; , потому что “t” здесь равно нулю.
3. Исключение Java NullPointerException при передаче значения null в аргументе метода
Это одно из наиболее распространенных случаев использования java.lang.Исключение NullPointerException потому что вызывающий объект передает аргумент null.
На приведенном ниже рисунке показано исключение нулевого указателя, когда вышеуказанная программа выполняется в среде IDE Eclipse.
4. java.язык.Исключение NullPointerException, когда выбрасывается значение null
Ниже приведена трассировка стека исключений вышеупомянутой программы, показывающая исключение NullPointerException из-за оператора throw null; .
5. Исключение NullPointerException при получении длины массива null
6. Исключение NullPointerException при доступе к значению индекса нулевого массива
7. Исключение NullPointerException при синхронизации с нулевым объектом
synchronized(мьютекс) вызовет исключение NullPointerException, поскольку объект “мьютекс” равен нулю.
8. Статус HTTP 500 java.lang.Исключение NullPointerException
Иногда мы получаем ответ на страницу с ошибкой от веб – приложения java с сообщением об ошибке “HTTP Status 500-Внутренняя ошибка сервера” и основной причиной как java.lang.Исключение NullPointerException .
Для этого я отредактировал пример проекта Spring MVC и изменил метод HomeController, как показано ниже.
На рисунке ниже показано сообщение об ошибке, вызванное ответом веб – приложения.
Вот трассировка стека исключений:
Основной причиной является исключение NullPointerException в инструкции user.getUserId().toLowerCase() потому что user.getUserId() возвращает значение null.
Как определить java.lang.Исключение NullPointerException
Обнаружить исключение NullPointerException очень просто, просто посмотрите на трассировку исключений, и она покажет вам имя класса и номер строки исключения. Затем посмотрите на код и посмотрите, что может быть null, вызывающим исключение NullPointerException. Просто посмотрите на все вышеприведенные примеры, из трассировки стека очень ясно, что вызывает исключение nullpointerexception.
Как исправить исключение NullPointerException
ява.ланг.Исключение NullPointerException является непроверенным исключением, поэтому нам не нужно его ловить. Исключения нулевого указателя можно предотвратить с помощью проверок на нуль и методов превентивного кодирования. Посмотрите на приведенные ниже примеры кода, показывающие, как избежать java.lang.Исключение NullPointerException .
Рекомендации по кодированию, чтобы избежать исключения NullPointerException
1. Давайте рассмотрим приведенную ниже функцию и рассмотрим сценарий, вызывающий исключение нулевого указателя.
Исключение NullPointerException может возникнуть, если аргумент передается как null. Тот же метод можно записать, как показано ниже, чтобы избежать исключения NullPointerException.
2. Мы также можем добавить нулевую проверку аргумента и выбросить Исключение IllegalArgumentException при необходимости.
3. Мы можем использовать тернарный оператор, как показано в приведенном ниже примере кода.
4. Используйте метод String.valueOf() вместо метода toString () . Например, проверьте, что код метода PrintStream println() определен следующим образом.
Приведенный ниже фрагмент кода показывает пример, в котором метод valueOf() используется вместо toString().
5. Напишите методы, возвращающие пустые объекты, а не пустые, где это возможно, например, пустой список, пустую строку и т. Д.
6. В классах коллекций определены некоторые методы, чтобы избежать исключения NullPointerException, вы должны их использовать. Например, содержит(), содержит () и содержит значение().
Источник
I’m using converse.js
and trying to work with privacy lists. I’m trying to send this IQ:
<body rid="2993056535" xmlns="http://jabber.org/protocol/httpbind" sid="578oe88nm1">
<iq from="alex3@ofb2" type="set" id="active1" xmlns="jabber:client">
<query xmlns="jabber:iq:privacy"/>
</iq>
</body>
This is what server returns me:
<body xmlns="http://jabber.org/protocol/httpbind" ack="2993056535">
<iq xmlns="jabber:client" type="error" id="active1" to="alex3@ofb2/converse.js-90734653">
<query xmlns="jabber:iq:privacy"/>
<error code="500" type="wait">
<internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
</body>
In the server logs I see this exception:
2016.02.19 12:49:00 org.jivesoftware.openfire.handler.IQHandler - Internal server error
java.lang.NullPointerException
at org.jivesoftware.openfire.handler.IQPrivacyHandler.handleIQ(IQPrivacyHandler.java:120)
at org.jivesoftware.openfire.handler.IQHandler.process(IQHandler.java:66)
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:372)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:115)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:78)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:108)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:67)
at org.jivesoftware.openfire.http.HttpSession.sendPendingPackets(HttpSession.java:639)
at org.jivesoftware.openfire.http.HttpSession$HttpPacketSender.run(HttpSession.java:1270)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
What’s wrong?
legoscia
39.3k22 gold badges115 silver badges163 bronze badges
asked Feb 18, 2016 at 18:57
2
The stacktrace points to these lines:
// Privacy list handling (create/edit/delete)
Element list = child.element("list");
String listName = list.attributeValue("name");
That is, it looks for a child element <list>
, and crashes when it can’t find it.
So why does it look for that? It turns out that this is the branch it takes if the IQ has type set
(and neither a <default>
nor <active>
child element). However, as described in XEP-0016, to get the names of existing privacy lists you need to send an IQ with type get
instead. Your request should look like this instead:
<iq from='romeo@example.net/orchard' type='get' id='getlist1'>
<query xmlns='jabber:iq:privacy'/>
</iq>
answered Feb 19, 2016 at 12:59
legoscialegoscia
39.3k22 gold badges115 silver badges163 bronze badges
0
1
Устанавливаю openfire (4.0.1), версия java
Picked up _JAVA_OPTIONS: -Xmx512M
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
Устанавливаю в браузере, внутренняя база данных, подключение по openLDAP, опознаны пользователи и админ. Только очень долго думает при проверке. Отображает подключение к панели администратора выдает окно авторизации — и выбивает ошибку
HTTP ERROR 500
Problem accessing /index.jsp. Reason:
Server Error
Caused by:
java.lang.NullPointerException
at org.jivesoftware.openfire.admin.index_jsp._jspService(index_jsp.java:173)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:76)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:53)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:80)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:162)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
Проверяю сам сервер — отключен, включаю — отключается через пять секунд.
Проверяю java командой
/usr/bin/java -v
Unrecognized option: -v
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
В логах сервера
2017.07.09 23:22:04 org.jivesoftware.openfire.XMPPServer - Database could not be accessed
java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the last attempt$
at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:156)
at org.jivesoftware.openfire.XMPPServer.verifyDataSource(XMPPServer.java:724)
at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:448)
at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:169)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at java.lang.Class.newInstance(Class.java:442)
at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:105)
at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56)
2017.07.09 23:22:04 org.jivesoftware.openfire.XMPPServer - java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a conne$
java.lang.IllegalArgumentException: java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries.$
at org.jivesoftware.openfire.XMPPServer.verifyDataSource(XMPPServer.java:734)
at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:448)
at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:169)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at java.lang.Class.newInstance(Class.java:442)
at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:105)
at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56)
Caused by: java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the l$
at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:156)
at org.jivesoftware.openfire.XMPPServer.verifyDataSource(XMPPServer.java:724)
Как-то надо специально java запускать для openfire? Или где-то еще смотреть причины отключения openfire?
Ниже представлена моя структура OpenLDAP:
+ → dc = test, dc = com (3) —> cn = admin + → ou = groups (3) | —> cn = admin | —> cn = irc | —> cn = пользователи | —> Создать новую запись здесь + → ou = users (4) | —> cn = user1 | —> cn = user2 | —> cn = user3 | —> cn = user4
Настройки в Openfire: Шаг 1: Порт: 389 Базовый DN: ou = пользователи, dc = test, dc = com Администратор DN: cn = admin, dc = test, dc = com
Шаг 2. Пользовательское сопоставление: Имя пользователя: uid
Шаг 3: Группа групп групп полей: cn Поле участника: uniqueMember Описание Поле: описание
Для следующего окна, когда я нажимаю Save и Continue, я получаю следующее исключение:
HTTP ERROR 500
Проблема с доступом /setup/setup-admin-settings.jsp. Причина:
Server Error
Вызванный:
java.lang.NullPointerException на org.jivesoftware.openfire.admin.setup.setup_002dadmin_002dsettings_jsp._jspService (setup_002dadmin_002dsettings_jsp.java:99) на org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) в javax.servlet. http.HttpServlet.service(HttpServlet.java:820) в org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java: 1359) в com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) в com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) на org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1330) в org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74) в org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java: 1330) at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50) на org.eclipse.jetty.servl et.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1330) на org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78) на org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java: 1330) на org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164) на org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1330) на org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) в org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) в org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) в org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) в org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) в org.eclipse.jetty.servlet. ServletHandler.doScope(ServletHandler.java:409) на org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) на org.eclipse.jetty.server.handler.C ontextHandler.doScope(ContextHandler.java:875) в org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) в org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java: 250) на org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) на org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) на org.eclipse.jetty.server.Server.handle(Server.java:349) в org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) на org.eclipse.jetty.server.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java: 919) на org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582) на org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) на org.eclipse.jetty.server. AsyncHttpConnection.handle(AsyncHttpConnection.java:51) в org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) на org.eclipse.jetty.io.nio.SelectChannelEnd Точка $ 1.run(SelectChannelEndPoint.java:44) на org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) на org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool. java: 533) в java.lang.Thread.run(Thread.java:701)
Также я сделал некоторые изменения, и мне удалось увидеть экран «Добавить администратора», но я не смог добавить ни одного из моих существующих пользователей LDAP. Это вызвало следующую ошибку:
Msgstr «Нет имени пользователя или указанного имени пользователя не найдено.»
Я перезапустил сервер, и с тех пор NullPointerException снова начал возвращаться. ((Ну, что заслуживает другого обсуждения, как только я это получу)
Где я иду не так?
FYI, как серверы, openfire, так и OpenLdap, работают на одних и тех же виртуальных машинах.
Спасибо в adv.
Я использую converse.js
и пытаюсь работать со списками конфиденциальности. Я пытаюсь отправить этот IQ:
<body rid="2993056535" xmlns="http://jabber.org/protocol/httpbind" sid="578oe88nm1">
<iq from="alex3@ofb2" type="set" id="active1" xmlns="jabber:client">
<query xmlns="jabber:iq:privacy"/>
</iq>
</body>
Вот что мне возвращает сервер:
<body xmlns="http://jabber.org/protocol/httpbind" ack="2993056535">
<iq xmlns="jabber:client" type="error" id="active1" to="alex3@ofb2/converse.js-90734653">
<query xmlns="jabber:iq:privacy"/>
<error code="500" type="wait">
<internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
</body>
В журналах сервера я вижу такое исключение:
2016.02.19 12:49:00 org.jivesoftware.openfire.handler.IQHandler - Internal server error
java.lang.NullPointerException
at org.jivesoftware.openfire.handler.IQPrivacyHandler.handleIQ(IQPrivacyHandler.java:120)
at org.jivesoftware.openfire.handler.IQHandler.process(IQHandler.java:66)
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:372)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:115)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:78)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:108)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:67)
at org.jivesoftware.openfire.http.HttpSession.sendPendingPackets(HttpSession.java:639)
at org.jivesoftware.openfire.http.HttpSession$HttpPacketSender.run(HttpSession.java:1270)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Что не так?
1 ответ
Лучший ответ
Трассировка стека в эти строки:
// Privacy list handling (create/edit/delete)
Element list = child.element("list");
String listName = list.attributeValue("name");
То есть он ищет дочерний элемент <list>
и вылетает, когда не может его найти.
Так почему он это ищет? Оказывается, это та ветвь, которая требуется, если IQ имеет тип set
(и не является дочерним элементом <default>
или <active>
). Однако, как описано в XEP-0016, чтобы получить имена существующих списки конфиденциальности, вам нужно вместо этого отправить IQ с типом get
. Вместо этого ваш запрос должен выглядеть так:
<iq from='romeo@example.net/orchard' type='get' id='getlist1'>
<query xmlns='jabber:iq:privacy'/>
</iq>
1
legoscia
19 Фев 2016 в 15:59