Bloomreach 14.5.0 to 14.7.3 upgrade

Hi all,
I want to upgrade v14.5.0 to v14.7.3 in local but facing some issue, in v14.5.0 I don’t have some spring packages like tx, when I use v14.7.3 then cargo.run is falling and it says to add transaction dependencies. When I add this and start cargo, it comes with some error logs then /cms says 404.

Errors:
--------

01-Mar-2022 16:53:54.178 INFO [main] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
01-Mar-2022 16:54:57.976 INFO [main] org.apache.catalina.core.ApplicationContext.log jolokia-agent: Using access restrictor classpath:/jolokia-access.xml
01-Mar-2022 16:56:16.780 INFO [main] org.apache.catalina.core.ApplicationContext.log 2 Spring WebApplicationInitializers detected on classpath
01-Mar-2022 16:56:34.750 INFO [main] org.apache.catalina.core.ApplicationContext.log Initializing Spring embedded WebApplicationContext
01-Mar-2022 16:56:40.138 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
java.lang.IllegalStateException: Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml!
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:263)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4768)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1185)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1933)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1095)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:477)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
01-Mar-2022 16:56:40.161 INFO [main] org.apache.catalina.core.ApplicationContext.log Closing Spring root WebApplicationContext
01-Mar-2022 16:56:40.928 INFO [main] org.apache.catalina.core.ApplicationContext.log Closing Spring root WebApplicationContext
01-Mar-2022 16:57:05.803 INFO [main] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
01-Mar-2022 16:57:08.890 INFO [main] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext

In web.xml( v14.5.0 and v14.7.3) I have two listener:-

org.hippoecm.hst.platform.container.HstCmsContextLoaderListener org.springframework.web.context.ContextLoaderListener

Above two listener works fine in v14.5.0 but in v14.7.3 it fails at runtime says multiple listener defined in cms/web.xml, above I get when I add spring-tx dependency in pom.

Above listeners required because I have integrated solr as well.

Need your suggestions to resolve above issue!.

exclude spring boot from your cms pom.xml dependencies:

     <dependency>
            <groupId>org.onehippo.cms7</groupId>
            <artifactId>hippo-package-cms-dependencies</artifactId>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <groupId>org.onehippo.cms7</groupId>
                    <artifactId>xm-spring-boot-integration</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

see:
https://documentation.bloomreach.com/content/v14/docs/upgrade-145-to-146

NOTE: artifact name changed in 14.7.x versions

Hi @machak,

Thanks for your quick response, my issue has been resolved.