wildmountainfarms/solarthing

solarthing-server dependency bug

retrodaredevil opened this issue · 0 comments

Got weird error.
application.properties:

solarthing.config.database=config/couchdb.json
solarthing.config.default_source=default
solarthing.config.default_fragment=1
solarthing.config.command_file=config/commands.json
# This is the default value, but we are being explicit
solarthing.config.solcast_file=config/solcast.json

error:

2023-06-21 21:15:33.999 ERROR [           main] o.s.b.SpringApplication                  : Application run failed                                                       
                                                                                                                                                                          
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'inMemoryDatabaseManager' defined in file [/app/classes/BOOT-INF/classes/me/retrodaredev
tabase/InMemoryDatabaseManager.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionExcep
ean of type 'me.retrodaredevil.solarthing.config.databases.implementations.CouchDbDatabaseSettings' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}                                  
   at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.18.jar:5.3.18]                                 
   at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.18.jar:5.3.18]                                 
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.18.jar:5.3.18]
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.18.jar:5.3.18]
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.18.jar:5.3.18]
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.18.jar:5.3.18]
   at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.18.jar:5.3.18]                                  
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.18.jar:5.3.18]                      
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.18.jar:5.3.18]                                           
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.18.jar:5.3.18]                                             
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) ~[spring-beans-5.3.18.jar:5.3.18]              
   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.18.jar:5.3.18]
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.18.jar:5.3.18]                                   
   at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.6.jar:2.6.6]               
   at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) ~[spring-boot-2.6.6.jar:2.6.6]                                                                     
   at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) ~[spring-boot-2.6.6.jar:2.6.6]                                                              
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[spring-boot-2.6.6.jar:2.6.6]                                                                         
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) ~[spring-boot-2.6.6.jar:2.6.6]                                                                        
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) ~[spring-boot-2.6.6.jar:2.6.6]                                                                        
   at me.retrodaredevil.solarthing.rest.SolarThingGraphQLApplication.main(SolarThingGraphQLApplication.java:14) ~[classes/:?]                                                           
   at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[?:?]                                                                                                     
   at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]                     
   at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[classes/:?]                                                                                      
   at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) ~[classes/:?]                                                                                                  
   at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[classes/:?]                                                                                                   
   at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[classes/:?]                                                                                               
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'me.retrodaredevil.solarthing.config.databases.implementations.CouchDbDatabaseSet
ected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1799) ~[spring-beans-5.3.18.jar:5.3.18]             
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1394) ~[spring-beans-5.3.18.jar:5.3.18]                  
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) ~[spring-beans-5.3.18.jar:5.3.18]                    
   at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.18.jar:5.3.18]                            
   at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.18.jar:5.3.18]                                 
   ... 25 more

This error has likely been around for a little while, but is not present on the release tagged with latest.