Hello Appian Community,
My team and I are in the process of installing Appian version 22.4 on Windows 2016 Standard with IIS 10 and MS SQL Server 2016 Enterprise Edition. After following the steps from the guide and attempting to start the app and all its components (Service Manager, Data Server, Search Server, app) we get an error in the logs that ends with this entry
2023-08-11 13:39:10,957 [localhost-startStop-1] FATAL com.appiancorp.common.web.StartupHaltingServletContextListener - Appian initialization FAILED: see above stacktrace for details
and starts with this entry
2023-08-11 13:39:10,935 [localhost-startStop-1] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
Here is an excert of the rest of the message:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#66' while setting bean property 'sourceList' with key [66]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#66': Cannot resolve reference to bean 'preBasicAuthFilter' while setting constructor argument with key [6]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'preBasicAuthFilter' defined in ServletContext resource [/WEB-INF/conf/security/spring-security-05-web-api.xml]: Cannot create inner bean 'util:list#63df5958' of type [org.springframework.beans.factory.config.ListFactoryBean] while setting bean property 'filters'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'util:list#63df5958': Cannot resolve reference to bean 'oAuthFilter' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.appiancorp.oauth.inbound.resourceserver.security.OAuthFilterSpringConfig': Unsatisfied dependency expressed through field 'oAuthInboundProductMetricsLogger'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.appiancorp.oauth.inbound.OAuthInboundSpringConfig': Unsatisfied dependency expressed through field 'suiteConfigurationAdapter'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.appiancorp.oauth.inbound.OAuthServiceAdapterSpringConfig': Unsatisfied dependency expressed through field 'certificateService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'certificateService' defined in class path resource [com/appiancorp/security/ssl/SslSpringConfig.class]: Unsatisfied dependency expressed through method 'certificateService' parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'systemCryptographerProvider' defined in class path resource [com/appiancorp/security/external/ExternalSystemSpringConfig.class]: Unsatisfied dependency expressed through method 'systemCryptographerProvider' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'keyStoreConfigSupplier' defined in class path resource [com/appiancorp/common/crypto/CryptoSpringConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.google.common.base.Supplier]: Factory method 'keyStoreConfigSupplier' threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
Has anyone encountered this before or have any insight on what might not be properly configured?
We have gone through the installation steps several times now and have run out of things to look at. If no one has any fix to recommend I would at the very least appreciate getting a better understand of the entry ERROR org.springframework.web.context.ContextLoader - Context initialization failed
Thanks in advance,
----EDIT-----
Added stack trace and removed the redundant portion.
2023-08-11 13:39:10,935 [localhost-startStop-1] ERROR org.springframework.web.context.ContextLoader - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#66' while setting bean property 'sourceList' with key [66]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#66': Cannot resolve reference to bean 'preBasicAuthFilter' while setting constructor argument with key [6]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'preBasicAuthFilter' defined in ServletContext resource [/WEB-INF/conf/security/spring-security-05-web-api.xml]: Cannot create inner bean 'util:list#63df5958' of type [org.springframework.beans.factory.config.ListFactoryBean] while setting bean property 'filters'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'util:list#63df5958': Cannot resolve reference to bean 'oAuthFilter' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.appiancorp.oauth.inbound.resourceserver.security.OAuthFilterSpringConfig': Unsatisfied dependency expressed through field 'oAuthInboundProductMetricsLogger'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.appiancorp.oauth.inbound.OAuthInboundSpringConfig': Unsatisfied dependency expressed through field 'suiteConfigurationAdapter'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.appiancorp.oauth.inbound.OAuthServiceAdapterSpringConfig': Unsatisfied dependency expressed through field 'certificateService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'certificateService' defined in class path resource [com/appiancorp/security/ssl/SslSpringConfig.class]: Unsatisfied dependency expressed through method 'certificateService' parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'systemCryptographerProvider' defined in class path resource [com/appiancorp/security/external/ExternalSystemSpringConfig.class]: Unsatisfied dependency expressed through method 'systemCryptographerProvider' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'keyStoreConfigSupplier' defined in class path resource [com/appiancorp/common/crypto/CryptoSpringConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.google.common.base.Supplier]: Factory method 'keyStoreConfigSupplier' threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:428) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:173) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1707) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1452) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:934) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) 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 com.appiancorp.common.AppianSpringContextLoaderListener$AppianContextLoaderListener.lambda$contextInitialized$0(AppianSpringContextLoaderListener.java:27) at com.appiancorp.security.changelog.AuditLogLocationService.runWithLocation(AuditLogLocationService.java:34) at com.appiancorp.common.AppianSpringContextLoaderListener$AppianContextLoaderListener.contextInitialized(AppianSpringContextLoaderListener.java:25) at com.appiancorp.common.web.StartupHaltingServletContextListener.doContextInitialized(StartupHaltingServletContextListener.java:81) at com.appiancorp.common.web.StartupHaltingServletContextListener.lambda$contextInitialized$0(StartupHaltingServletContextListener.java:55) at com.appiancorp.security.changelog.AuditLogLocationService.runWithLocation(AuditLogLocationService.java:38) at com.appiancorp.common.web.StartupHaltingServletContextListener.contextInitialized(StartupHaltingServletContextListener.java:55) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4492) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4950) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:711) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:688) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:661) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:673) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
Discussion posts and replies are publicly visible
Don't have the full stack trace so it's hard to say - but there is mention of the keyStore
Error creating bean with name 'keyStoreConfigSupplier' defined in class path resource [com/appiancorp/common/crypto/CryptoSpringConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.google.common.base.Supplier]: Factory method 'keyStoreConfigSupplier' threw exception;
Could be related to this: https://community.appian.com/support/w/kb/273/kb-1048-errors-related-to-appian-keystore-during-application-server-startup
The problem is fixed. Turns out you were close. The "easiest" solution is to double check and make sure you're using the right version of the DB driver or/and contact Appian Support. They are aware of this problem.