tree cafc7e5e4e58b5912538c2a2f870685c18df97e2
parent e5db05a46aac8c86727acd7803de24fd4a6078a8
author Marc Kupietz <kupietz@ids-mannheim.de> 1757704213 +0200
committer Marc Kupietz <kupietz@ids-mannheim.de> 1757704325 +0200

Fix missing vcLoader in lite mode

error: kustvakt-1 | Error creating bean with name 'searchController':
Unsatisfied dependency expressed through field 'vcLoader': No qualifying
bean of type 'java.lang.Runnable' available: expected at least 1 bean
which qualifies as autowire candidate. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
kustvakt-1 |
org.springframework.beans.factory.UnsatisfiedDependencyException: Error
creating bean with name 'searchController': Unsatisfied dependency
expressed through field 'vcLoader': No qualifying bean of type
'java.lang.Runnable' available: expected at least 1 bean which qualifies
as autowire candidate. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
kustvakt-1 | at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:788)
kustvakt-1 | at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:768)
kustvakt-1 | at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
kustvakt-1 | at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:509)
kustvakt-1 | at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1439)
kustvakt-1 | at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)
kustvakt-1 | at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
kustvakt-1 | at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
kustvakt-1 | at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
kustvakt-1 | at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
kustvakt-1 | at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
kustvakt-1 | at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)
kustvakt-1 | at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971)
kustvakt-1 | at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625)
kustvakt-1 | at
org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:394)
kustvakt-1 | at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:274)
kustvakt-1 | at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:102)
kustvakt-1 | at
org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1046)
kustvakt-1 | at
org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
kustvakt-1 | at
org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:983)
kustvakt-1 | at
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740)
kustvakt-1 | at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
kustvakt-1 | at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:902)
kustvakt-1 | at
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
kustvakt-1 | at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
kustvakt-1 | at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
kustvakt-1 | at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
kustvakt-1 | at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
kustvakt-1 | at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
kustvakt-1 | at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
kustvakt-1 | at org.eclipse.jetty.server.Server.start(Server.java:470)
kustvakt-1 | at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
kustvakt-1 | at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
kustvakt-1 | at org.eclipse.jetty.server.Server.doStart(Server.java:415)
kustvakt-1 | at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
kustvakt-1 | at
de.ids_mannheim.korap.server.KustvaktBaseServer.start(KustvaktBaseServer.java:174)
kustvakt-1 | at
de.ids_mannheim.korap.server.KustvaktLiteServer.main(KustvaktLiteServer.java:23)
kustvakt-1 | Caused by:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No
qualifying bean of type 'java.lang.Runnable' available: expected at
least 1 bean which qualifies as autowire candidate. Dependency
annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
kustvakt-1 | at
org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1894)
kustvakt-1 | at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1411)
kustvakt-1 | at
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1358)

Change-Id: Iba84f509dd1a55fb6619a3623ce3981ddc9bf375
