Ошибка соединения incompatible version of communication protocol

Started by wealthmag, June 30, 2023, 08:08:06 AM

Previous topic - Next topic

wealthmag

Приветствую.

Новичок, не судите строго...

При попытке залогиниться такая ошибка: https://prnt.sc/O02I4GLMVlnu

Сервер Ubuntu 22.04 LTS, MariaDB, tomcat9, java 11, версия WAR 4.3.7

Подскажите, пожалуйста, почему версии протоколов на сервере и клиенте не совпадают, если ставил все строго по инструкции -  https://netxms.org/documentation/adminguide/installation.html#installing-from-deb-repository ?
И как это исправить?

Filipp Sudanov

День добрый,

для начала нужно проверить, какая версия сервера, выполнив
netxmsd -v

Ну и на всякий случай перезапустить сервер
systemctl restart netxmsd
чтоб не было ситуации, чтоб бинарники уже новые, а в памяти все еще работает сервер старой версии.

Для проверки можно поставить десктопного клиента и посмотреть, можно ли подуключиться из него

Filipp Sudanov

А, у нас веб страница не обновлена, самую свежую версия WAR файла можно взять тут:
https://netxms.org/download/releases/4.4/

wealthmag

Fillip, благодарю за ответ.Но с новыми WAR тоже не получается.
Ставлю nxmc-4.4.0.war, оно в tomcat не запускается: Сообщение: ОШИБКА - Приложение по контекстному пути [/nxmc-4.4.0] не запустилось
Если ставлю nxmc-legacy-4.4.0.war, то в tomcat запускается, но при попытке открыть в браузере ошибка:
HTTP Status 404 – Не найдено
Type Status ReportMessage ProxyServlet:
/Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.Apache Tomcat/9.0.58 (Ubuntu)

NetXMS server version 4.4.0 build tag 4.4-416-ge31433b0b1

megabyte88

Что-то разрабы поломали в war файлах версии 4.4. Ни стандартная, ни легаси не запускаются на томкате.
В логах томката выдаёт ошибку:
20-Jul-2023 11:21:25.927 INFO [http-nio-80-exec-38] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
20-Jul-2023 11:21:26.050 SEVERE [http-nio-80-exec-38] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
20-Jul-2023 11:21:26.051 SEVERE [http-nio-80-exec-38] org.apache.catalina.core.StandardContext.startInternal Context [/nxmc] startup failed due to previous errors
20-Jul-2023 11:21:26.056 WARNING [http-nio-80-exec-38] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches Failed to clear soft references from ObjectStreamClass$Caches for web application [nxmc]
java.lang.ClassCastException: class java.io.ObjectStreamClass$Caches$1 cannot be cast to class java.util.Map (java.io.ObjectStreamClass$Caches$1 and java.util.Map are in module java.base of loader 'bootstrap')
at org.apache.catalina.loader.WebappClassLoaderBase.clearCache(WebappClassLoaderBase.java:2325)
at org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches(WebappClassLoaderBase.java:2300)
at org.apache.catalina.loader.WebappClassLoaderBase.clearReferences(WebappClassLoaderBase.java:1669)
at org.apache.catalina.loader.WebappClassLoaderBase.stop(WebappClassLoaderBase.java:1597)
at org.apache.catalina.loader.WebappLoader.stopInternal(WebappLoader.java:463)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5515)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1437)
at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:703)
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:221)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:211)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:659)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)

Filipp Sudanov

Для новых версий нужны Java 17+ и tomcat9. Или Jetty 10.
И еще можно воспользоваться лаунчером основанным на джетти https://github.com/netxms/nxmc-web-launcher

megabyte88

Java 19.0.2 Tomcat9 Ubuntu 22.04.3. Tomcat при запуске nxmc по прежнему пишет
ОШИБКА - Приложение по контекстному пути [/nxmc] не запустилось


Filipp Sudanov

Проверьте после рестарта, что в его логе (journalctl -u tomcat9.service) правильная версия джавы, должно быть так:
Java Home:            /usr/lib/jvm/java-17-openjdk-amd64

megabyte88

Quote from: Filipp Sudanov on September 11, 2023, 03:51:31 PMПроверьте после рестарта, что в его логе (journalctl -u tomcat9.service) правильная версия джавы, должно быть так:
Java Home:            /usr/lib/jvm/java-17-openjdk-amd64
Получатеся Tomcat использует старую версию, хотя в системе установлена новая.
# journalctl -u tomcat9.service 
Java Home:             /usr/lib/jvm/java-11-openjdk-amd64
Вставил в файл (/lib/systemd/system/tomcat9.service) строчку:
Environment="JAVA_HOME=/usr/lib/jvm/java-1.19.0-openjdk-amd64"и перезапустил томкат.
Заработало!