Deploy Jmix & Cuba applications in single Tomcat instance

Hi,

I am mounting two different apps, one developed with CUBA and another with JMIX in a single Tomcat instance.

Uploaing the wars in Tomcat9 poses no problem. The JMix app works fine. The CUBA one is throwing the following exception upon attempting to launch the login page. The CUBA platform is deployed via two war files (app and app-core).

java.lang.RuntimeException: Unable to login as anonymous!
    at com.haulmont.cuba.web.DefaultApp.loginOnStart(DefaultApp.java:313) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.AppUI.setupUI(AppUI.java:477) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.AppUI.init(AppUI.java:337) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.vaadin.ui.UI.doInit(UI.java:738) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
    at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:209) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
    at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:67) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1577) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:425) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
    at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:329) [cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:215) [cuba-web-7.1.2.jar:7.1.2]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [servlet-api.jar:4.0.FR]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [catalina.jar:9.0.54]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-websocket.jar:9.0.54]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.54]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
    at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:93) [cuba-web-7.1.2.jar:7.1.2]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.54]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [catalina.jar:9.0.54]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [catalina.jar:9.0.54]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) [catalina.jar:9.0.54]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [catalina.jar:9.0.54]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.54]
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) [catalina.jar:9.0.54]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:9.0.54]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [catalina.jar:9.0.54]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-coyote.jar:9.0.54]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.54]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) [tomcat-coyote.jar:9.0.54]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722) [tomcat-coyote.jar:9.0.54]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.54]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:9.0.54]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.54]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.54]
    at java.lang.Thread.run(Unknown Source) [na:1.8.0_311]
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.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.security.ConnectionImpl.login(ConnectionImpl.java:91) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.DefaultApp.loginOnStart(DefaultApp.java:311) ~[cuba-web-7.1.2.jar:7.1.2]
    ... 38 common frames omitted
Caused by: org.springframework.remoting.RemoteConnectFailureException: Could not connect to HTTP invoker remote service at [cuba_TrustedClientService]; nested exception is java.net.ConnectException: Connection refused: connect
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:220) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:157) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at com.sun.proxy.$Proxy838.getAnonymousSession(Unknown Source) ~[na:na]
    at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.getAnonymousSessionFromService(WebAnonymousSessionHolder.java:74) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.initializeAnonymousSession(WebAnonymousSessionHolder.java:65) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.checkInitialized(WebAnonymousSessionHolder.java:54) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.getAnonymousSession(WebAnonymousSessionHolder.java:43) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.security.providers.AnonymousLoginProvider.login(AnonymousLoginProvider.java:51) ~[cuba-web-7.1.2.jar:7.1.2]
    at com.haulmont.cuba.web.security.ConnectionImpl.loginInternal(ConnectionImpl.java:192) ~[cuba-web-7.1.2.jar:7.1.2]
    ... 40 common frames omitted
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[na:1.8.0_311]
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[na:1.8.0_311]
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[na:1.8.0_311]
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[na:1.8.0_311]
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_311]
    at java.net.PlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_311]
    at java.net.SocksSocketImpl.connect(Unknown Source) ~[na:1.8.0_311]
    at java.net.Socket.connect(Unknown Source) ~[na:1.8.0_311]
    at java.net.Socket.connect(Unknown Source) ~[na:1.8.0_311]
    at sun.net.NetworkClient.doConnect(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.http.HttpClient.<init>(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.http.HttpClient.New(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.http.HttpClient.New(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source) ~[na:1.8.0_311]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) ~[na:1.8.0_311]
    at org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor.writeRequestBody(SimpleHttpInvokerRequestExecutor.java:168) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at com.haulmont.cuba.core.sys.remoting.ClusteredHttpInvokerRequestExecutor.doExecuteRequest(ClusteredHttpInvokerRequestExecutor.java:77) ~[cuba-global-7.1.2.jar:7.1.2]
    at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:140) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:206) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:188) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:154) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    ... 49 common frames omitted
2021-11-18 17:34:40.970 WARN  [http-nio-80-exec-40] com.vaadin.server.communication.ServerRpcHandler -
=================================================================
The widgetset in use does not seem to be built for the Vaadin
version in use. This might cause strange problems - a
recompile/deploy is strongly recommended.
 Vaadin version: 8.6.4-23-cuba
 Widgetset version: 8.6.4-20-cuba
=================================================================

The errors shown do not make much sense to me. Any guidance on how to resolve them is greatly appreciated.

Many thanks.
Carlos.

Hi,
The exception means: CUBA web module cannot access CUBA core module by network (connection refused).

How do you build CUBA application, separate WARs or single WAR?
What is the http port of the Tomcat server?

Hi Alexander,

Two files app and app-core.

Port is 80.

This is part of an attempt to build a production environment.

Many thanks fo your help.

Regards.

Carlos

OK, then you are using scheme like “Stage 2” here: Application Scaling - CUBA Platform. Developer’s Manual

With the exception that two applications are in the same Tomcat.

Then you need to set the following properties for the “app” application:

cuba.useLocalServiceInvocation = false
cuba.connectionUrlList = http://localhost:80/app-core

These properties can be assigned in the build.gradle in the CubaWarBuilding task parameters.
Or through local.app.properties file located in the file system on the target server: Storing Properties in Files - CUBA Platform. Developer’s Manual

Thanks Alexander for your insights. This however seems not to be the problem in my case.

Here’s the exception stacktrace:

2021-11-28 22:31:21.918 DEBUG [http-nio-80-exec-24] com.haulmont.cuba.web.App - Initializing application
2021-11-28 22:31:21.935 DEBUG [http-nio-80-exec-24] com.haulmont.cuba.web.security.WebAnonymousSessionHolder - Loading anonymous session
2021-11-28 22:31:21.939 INFO  [http-nio-80-exec-24] com.haulmont.cuba.core.sys.remoting.ClusteredHttpInvokerRequestExecutor - Invocation of http://localhost:80/app-core/remoting/cuba_TrustedClientService failed: java.io.IOException: Did not receive successful HTTP response: status code = 404, status message = [null]
2021-11-28 22:31:21.940 INFO  [http-nio-80-exec-24] com.haulmont.cuba.core.sys.remoting.ClusteredHttpInvokerRequestExecutor - No more URL available
2021-11-28 22:31:21.942 ERROR [http-nio-80-exec-24] 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:313) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.AppUI.setupUI(AppUI.java:477) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.AppUI.init(AppUI.java:337) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.vaadin.ui.UI.doInit(UI.java:738) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
        at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:209) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
        at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:67) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
        at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
        at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1577) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
        at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:425) [vaadin-server-8.6.4-23-cuba.jar:8.6.4-23-cuba]
        at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:329) [cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:215) [cuba-web-7.1.2.jar:7.1.2]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [servlet-api.jar:4.0.FR]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-websocket.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
        at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:93) [cuba-web-7.1.2.jar:7.1.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [catalina.jar:9.0.54]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [catalina.jar:9.0.54]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.54]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:9.0.54]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [catalina.jar:9.0.54]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-coyote.jar:9.0.54]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.54]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) [tomcat-coyote.jar:9.0.54]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722) [tomcat-coyote.jar:9.0.54]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.54]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:9.0.54]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.54]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.54]
        at java.lang.Thread.run(Unknown Source) [na:1.8.0_311]
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.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.security.ConnectionImpl.login(ConnectionImpl.java:91) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.DefaultApp.loginOnStart(DefaultApp.java:311) ~[cuba-web-7.1.2.jar:7.1.2]
        ... 38 common frames omitted
Caused by: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [cuba_TrustedClientService]; nested exception is java.io.IOException: Did not receive successful HTTP response: status code = 404, status message = [null]
        at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:231) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:157) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at com.sun.proxy.$Proxy88.getAnonymousSession(Unknown Source) ~[na:na]
        at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.getAnonymousSessionFromService(WebAnonymousSessionHolder.java:74) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.initializeAnonymousSession(WebAnonymousSessionHolder.java:65) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.checkInitialized(WebAnonymousSessionHolder.java:54) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.security.WebAnonymousSessionHolder.getAnonymousSession(WebAnonymousSessionHolder.java:43) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.security.providers.AnonymousLoginProvider.login(AnonymousLoginProvider.java:51) ~[cuba-web-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.web.security.ConnectionImpl.loginInternal(ConnectionImpl.java:192) ~[cuba-web-7.1.2.jar:7.1.2]
        ... 40 common frames omitted
Caused by: java.io.IOException: Did not receive successful HTTP response: status code = 404, status message = [null]
        at org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor.validateResponse(SimpleHttpInvokerRequestExecutor.java:187) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at com.haulmont.cuba.core.sys.remoting.ClusteredHttpInvokerRequestExecutor.doExecuteRequest(ClusteredHttpInvokerRequestExecutor.java:79) ~[cuba-global-7.1.2.jar:7.1.2]
        at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:140) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:206) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:188) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:154) ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        ... 49 common frames omitted
2021-11-28 22:31:22.370 WARN  [http-nio-80-exec-19] com.vaadin.server.communication.ServerRpcHandler -
=================================================================
The widgetset in use does not seem to be built for the Vaadin
version in use. This might cause strange problems - a
recompile/deploy is strongly recommended.
 Vaadin version: 8.6.4-23-cuba
 Widgetset version: 8.6.4-20-cuba
=================================================================

Thanks for any guidance on resolving the problem.

Regards,
Carlos.

This error means that web layer tried to connect core layer by using “http://localhost:80/app-core” address there , but got “404 not found” http response.
This means one of:

  • the “app-core” web application failed to start
  • or the name of the “core” web application is different, not “app-core”.

Good point Alexander. Sorry missed that. App-core is failing to launch.

Stacktrace is as follows:

    =================================================================
Some of environment checks failed on core module:
Can not find JNDI datasource for Data Store: Main
        org.springframework.jdbc.datasource.lookup.DataSourceLookupFailureException: Failed to look up JNDI DataSource with name 'jdbc/CubaDS'; nested exception is javax.naming.NameNotFoundException: El nombre [jdbc/CubaDS] no este asociado a este contexto
=================================================================
2021-11-29 16:16:12.509 INFO  [http-nio-80-exec-7] com.haulmont.cuba.core.sys.persistence.PersistenceConfigProcessor - Creating file C:\Program Files\apache-tomcat-9.0.54\app_home\app-core\work\persistence.xml
2021-11-29 16:16:12.523 INFO  [http-nio-80-exec-7] com.haulmont.cuba.core.sys.persistence.PersistenceConfigProcessor - Creating file C:\Program Files\apache-tomcat-9.0.54\app_home\app-core\work\rentamasterdocs-persistence.xml
2021-11-29 16:16:15.281 WARN  [http-nio-80-exec-7] com.haulmont.cuba.core.sys.CubaCoreApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/haulmont/cuba/spring.xml]: Cannot resolve reference to bean 'cubaDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cubaDataSource' defined in class path resource [com/haulmont/cuba/spring.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: El nombre [jdbc/CubaDS] no este asociado a este contexto
2021-11-29 16:16:15.296 ERROR [http-nio-80-exec-7] com.haulmont.cuba.core.sys.AbstractWebAppContextLoader - Error initializing application
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/haulmont/cuba/spring.xml]: Cannot resolve reference to bean 'cubaDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cubaDataSource' defined in class path resource [com/haulmont/cuba/spring.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: El nombre [jdbc/CubaDS] no este asociado a este contexto
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:378) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1681) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1433) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:95) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at com.haulmont.cuba.core.sys.CubaClassPathXmlApplicationContext.<init>(CubaClassPathXmlApplicationContext.java:27) ~[cuba-global-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.core.sys.CubaCoreApplicationContext.<init>(CubaCoreApplicationContext.java:26) ~[cuba-core-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.core.sys.AppContextLoader.createApplicationContext(AppContextLoader.java:94) ~[cuba-core-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.core.sys.AppContextLoader.createApplicationContext(AppContextLoader.java:39) ~[cuba-core-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.core.sys.AbstractAppContextLoader.initAppContext(AbstractAppContextLoader.java:62) ~[cuba-global-7.1.2.jar:7.1.2]
        at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:78) ~[cuba-global-7.1.2.jar:7.1.2]
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4768) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230) [catalina.jar:9.0.54]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.54]
        at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1437) [catalina.jar:9.0.54]
        at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:703) [catalina.jar:9.0.54]
        at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:221) [catalina.jar:9.0.54]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) [servlet-api.jar:4.0.FR]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [servlet-api.jar:4.0.FR]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
        at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:211) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-websocket.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
        at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [catalina.jar:9.0.54]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [catalina.jar:9.0.54]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:659) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [catalina.jar:9.0.54]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.54]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) [catalina.jar:9.0.54]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:9.0.54]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [catalina.jar:9.0.54]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-coyote.jar:9.0.54]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.54]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) [tomcat-coyote.jar:9.0.54]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722) [tomcat-coyote.jar:9.0.54]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.54]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:9.0.54]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.54]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.54]
        at java.lang.Thread.run(Unknown Source) [na:1.8.0_311]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cubaDataSource' defined in class path resource [com/haulmont/cuba/spring.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: El nombre [jdbc/CubaDS] no este asociado a este contexto
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1778) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:367) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        ... 56 common frames omitted
Caused by: javax.naming.NameNotFoundException: El nombre [jdbc/CubaDS] no este asociado a este contexto
        at org.apache.naming.NamingContext.lookup(NamingContext.java:840) ~[catalina.jar:9.0.54]
        at org.apache.naming.NamingContext.lookup(NamingContext.java:172) ~[catalina.jar:9.0.54]
        at org.apache.naming.SelectorContext.lookup(SelectorContext.java:161) ~[catalina.jar:9.0.54]
        at javax.naming.InitialContext.lookup(Unknown Source) ~[na:1.8.0_311]
        at org.springframework.jndi.JndiTemplate.lambda$lookup$0(JndiTemplate.java:156) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:91) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:156) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:105) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:114) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:238) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at com.haulmont.cuba.core.sys.CubaJndiDataSourceFactoryBean.lookupWithFallback(CubaJndiDataSourceFactoryBean.java:27) ~[cuba-core-7.1.2.jar:7.1.2]
        at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:224) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        ... 63 common frames omitted
29-Nov-2021 16:16:15.299 GRAVE [http-nio-80-exec-7] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
29-Nov-2021 16:16:15.300 GRAVE [http-nio-80-exec-7] org.apache.catalina.core.StandardContext.startInternal Fall├│ en arranque del Contexto [/app-core] debido a errores previos
16:16:15,307 |-INFO in ch.qos.logback.classic.servlet.LogbackServletContextListener@194808d - About to stop ch.qos.logback.classic.LoggerContext [default]
29-Nov-2021 16:16:15.337 GRAVE [http-nio-80-exec-7] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks La aplicaci├│n web [app-core] cre├│ un ThreadLocal con clave del tipo [java.lang.ThreadLocal] (valor [java.lang.ThreadLocal@1598109]) y un valor del tipo [org.apache.xerces.jaxp.SAXParserImpl] (valor [org.apache.xerces.jaxp.SAXParserImpl@1d40eb2]) pero no pudo quitarlo cuando la aplicaci├│n web se par├│. Los hilos se van a renovar con el tiempo para intentar evitar in posible fallo de memoria.

After some google research, the following solution suggests to ensure buildWar gradle task includes the option => includeJdbcDriver = true, but that’s the way it is already.

So no clue how to approach a solution. Any help is greatly appreciated.

Regards,

Carlos Conti.

Solved. Context.xml was missing in the prod tomcat deployment. Copying the filie over solves the problem.

Thanks and hope this helps anyone.

Regards,
Carlos.