I have a WAR version config problem

I tried to follow this guide Install the Full Distribution on a Tomcat Application Server manually | docs.camunda.org
and downloaded the camunda-standalone war and put it into the webapp of my tomcat after all server.xml
configs. but I find the camunda webapp in prepackaged tomcat different from downloaded war version.
I need to configure ApplicationContext.xml to set the datasource. However I cannot set them like the one in server.xml. I will get this error:

            at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:176)
            at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1827)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1265)
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
            at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:408)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
            at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
            at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
            at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
            at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
            at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
            at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4716)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5172)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)
            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1023)
            at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1903)
            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.deployWARs(HostConfig.java:824)
            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
            at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1611)
            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:936)
            at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:843)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
            at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
            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:909)
            at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
            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:497)
            at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
            at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
    Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-190])
            at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:305)
            at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400)
            at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
            at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
            at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:44)
            at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70)
            at org.camunda.bpm.engine.impl.interceptor.CommandCounterInterceptor.execute(CommandCounterInterceptor.java:35)
            at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
            at org.camunda.bpm.engine.impl.ProcessEngineImpl.executeSchemaOperations(ProcessEngineImpl.java:148)
            at org.camunda.bpm.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:111)
            at org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:973)
            at org.camunda.bpm.engine.spring.SpringTransactionsProcessEngineConfiguration.buildProcessEngine(SpringTransactionsProcessEngineConfiguration.java:67)
            at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:55)
            at org.camunda.bpm.engine.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:34)
            at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:169)
            ... 61 more
    Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-190])
            at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
            at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
            at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
            at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:261)
            ... 75 more
    Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-190]
            at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
            at org.h2.message.DbException.get(DbException.java:168)
            at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
            at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
            at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
            at org.h2.engine.Database.getPageStore(Database.java:2450)
            at org.h2.engine.Database.open(Database.java:672)
            at org.h2.engine.Database.openDatabase(Database.java:269)
            at org.h2.engine.Database.<init>(Database.java:263)
            at org.h2.engine.Engine.openSession(Engine.java:65)
            at org.h2.engine.Engine.openSession(Engine.java:175)
            at org.h2.engine.Engine.createSessionAndValidate(Engine.java:153)
            at org.h2.engine.Engine.createSession(Engine.java:136)
            at org.h2.engine.Engine.createSession(Engine.java:28)
            at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
            at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107)
            at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91)
            at org.h2.Driver.connect(Driver.java:72)
            at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
            at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
            at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
            at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
            ... 78 more

how should I config this applicationContext.xml correctly

If I just download the standalong war here:
https://downloads.camunda.cloud/release/camunda-bpm/tomcat/7.15/camunda-webapp-tomcat-standalone-7.15.0.war

It uses memory database url by default, so I need to recreate admin account everytime. I would also like to know how to config a default admin user in ApplicationContext.xml. Thanks in advance.

Or if there anyone can tell me how to make the WAR version camunda webapp the same as the one in the prepackaged tomcat. I see no ApplicationContext.xml in the prepackaged version.

I think I found a work around, I need to add AUTO_SERVER=TRUE for both connection urls like this:

<property name="targetDataSource">

  <bean class="org.apache.commons.dbcp.BasicDataSource">

    <property name="driverClassName" value="org.h2.Driver" />

    <property name="url" value="jdbc:h2:./camunda-h2-dbs/process-engine;MVCC=TRUE;TRACE_LEVEL_FILE=0;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE" />

    <property name="username" value="sa" />

    <property name="password" value="sa" />

  </bean>

</property>

and change the password and username to be the same for both

It wound be good if this information is provided in the guide document.