Переход на версию 7.2

Привет, коллеги!

При переходе с версии 7.1.5 на 7.2.2 при старте приложения возникает ошибка:

com.haulmont.cuba.web.sys.remoting.LocalServiceAccessException: Unable to connect to middleware. Service app-core/cuba_TrustedClientService is not registered in LocalServiceDirectory

Due to this error, ‘web’ block cannot connect to the co-located ‘core’ block.
Most probably the ‘core’ block didn’t start properly, so check the server log for exceptions.
If there are no prior exceptions in the log, check that ‘cuba.connectionUrlList’ property value ends with the web context name of the ‘core’ block, e.g. ‘cuba.connectionUrlList = http://localhost:8080/app-core

You can turn off this information using ‘cuba.web.productionMode’ application property.

Скажите, пожалуйста, куда копнуть?

У вас midlleware не стартанул, как я понимаю.
Ищите проблему в логе ранее.

1 симпатия

Да, понятно. Почему-то в логах нет ничего. Только вот это:
Снимок экрана 2020-03-30 в 23.58.30

Под логами, или журналами, имеется ввиду не веб-страница.
Это файлы на диске, расположенные внутри сервера приложения. Например если используется tomcat, то журналы будут расположены в папке tomcat/logs.
Основные журналы в tomcat это catalina.out (catalina.stdout в Windows службе), catalina.log, localhost.log.
CUBA еще добавляет свои журналы, например app.log, если у вас корректно настроено журналирование.

Я понимаю. Вчера следил за логами tail -f сначала ничего интересного не было. Смотрел за canalia.out и за localhost* и localhost-access. Единственное что было интересное - это

Цитата 01:00:09.699 ERROR c.haulmont.cuba.core.app.ServerInfo - Unable to update SYS_SERVER: java.lang.IllegalStateException: BeanFactory not initialized or already closed - call ‘refresh’ before accessing beans via the ApplicationContext

Нарыл по документации, что это проблема с spring.xml бина CubaDataSourceFactoryBean, но в старой конфигурации на 7.1.5 тоже spring.xml был пустой.

Еще чуть ранее было:

Цитата =================================================================
Vaadin is running in DEBUG MODE.
Add productionMode=true to web.xml to disable debug features.
To show debug window, add ?debug to your application URL.
=================================================================
00:36:45.411 ERROR com.haulmont.cuba.web.AppUI - Unable to init ui
java.lang.RuntimeException: Unable to login as anonymous!
at com.haulmont.cuba.web.DefaultApp.loginOnStart(DefaultApp.java:314) ~[
cuba-web-7.2.2.jar:7.2.2]
at com.haulmont.cuba.web.AppUI.setupUI(AppUI.java:510) ~[cuba-web-7.2.2.
jar:7.2.2]
at com.haulmont.cuba.web.AppUI.init(AppUI.java:340) ~[cuba-web-7.2.2.jar
:7.2.2]
at com.vaadin.ui.UI.doInit(UI.java:738) ~[vaadin-server-8.9.2-4-cuba.jar
:8.9.2-4-cuba]
at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:209) ~[vaadin-server-8.9.2-4-cuba.jar:8.9.2-4-cuba]
at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:67) ~[vaadin-server-8.9.2-4-cuba.jar:8.9.2-4-cuba]
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[vaadin-server-8.9.2-4-cuba.jar:8.9.2-4-cuba]
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1578) ~[vaadin-server-8.9.2-4-cuba.jar:8.9.2-4-cuba]
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:425) ~[vaadin-server-8.9.2-4-cuba.jar:8.9.2-4-cuba]
at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:329) ~[cuba-web-7.2.2.jar:7.2.2]
at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:215) ~[cuba-web-7.2.2.jar:7.2.2]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[servlet-api.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[catalina.jar:9.0.27]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.27]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-websocket.jar:9.0.27]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.27]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.27]
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:93) ~[cuba-web-7.2.2.jar:7.2.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.27]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.27]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[catalina.jar:9.0.27]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[catalina.jar:9.0.27]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) ~[catalina.jar:9.0.27]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) ~[catalina.jar:9.0.27]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.27]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) ~[catalina.jar:9.0.27]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[catalina.jar:9.0.27]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[catalina.jar:9.0.27]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) ~[tomcat-coyote.jar:9.0.27]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-coyote.jar:9.0.27]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) ~[tomcat-coyote.jar:9.0.27]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579) ~[tomcat-coyote.jar:9.0.27]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:9.0.27]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:9.0.27]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: com.haulmont.cuba.security.global.InternalAuthenticationException: Exception is thrown by login provider
at com.haulmont.cuba.web.security.ConnectionImpl.loginInternal(ConnectionImpl.java:208) ~[cuba-web-7.2.2.jar:7.2.2]
at com.haulmont.cuba.web.security.ConnectionImpl.login(ConnectionImpl.java:91) ~[cuba-web-7.2.2.jar:7.2.2]
at com.haulmont.cuba.web.DefaultApp.loginOnStart(DefaultApp.java:312) ~[cuba-web-7.2.2.jar:7.2.2]
… 38 common frames omitted

На тестовой базе сгенерировал опять таблицы и все заработало. То есть судя по всему причина в том, что при переходе на новую версию что-то пошло не так и не прошло часть апдейтов базы.
Причем вчера мне пришлось на боевой базе восстанавливать штук 6 таблиц, которые при адрейте пропали.
Вот вопрос - как найти в каких таблицах несоответствие?
Видел в форуме, что у кого-то такая-же ошибка выла в неверных вьюшках. Но как найти причину?

Причина, почему сервер не стартует, всегда оказывается в журналах приложения.
Ошибки обновления БД тоже пишутся в журналы.
Если вы не можете найти ошибку, скорее всего вы невнимательно смотрите.
Причина не-запуска сервера это не всегда самое последнее исключение в журнале.

Для надежности рекомендуется перезапускать tomcat, а не просто подкидывать новый файл .war.

Если будут проблемы, можете приложить сюда файлы catalina.out, catalina.log, localhost.log, постараемся помочь разобраться.

Судя по всему была причина в том, что как-то неверно прошел апдейт базы.

Что сделал: сделал создание базы из студии, написал скрип и потаблично выгрузил данные из рабочей базы. Запустил приложение и все заработало почему-то…

#!/bin/bash
function copy_table()
{
echo -n "$1: "
echo -n Dump…
rm sql/$1.sql 2>/dev/null
pg_dump --column-inserts --attribute-inserts -S cuba --disable-triggers -a -h HOSTNAME -U cuba --no-comments --inserts --dbname SCHEMA --table $1 > sql/tmp/$1.sql
echo -n Remove log-file…
rm logs/$1.export.log
echo -n Load archive…
cat sql/tmp/$1.sql | psql -U cuba SCHEMA >/dev/null 2>logs/$1.export.log
echo Remove sql-file…
rm sql/tmp/$1.sql
}
(copy_table “ddcdi_import_attribute_mapper”)
(copy_table “ddcdi_import_configuration”)
(copy_table “sys_file”)