Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如果引用了小程序的依赖,但是没有配置appid和对应参数,会导致启动报错。请问如何规避呢? #69

Open
ChirsGod opened this issue Sep 13, 2023 · 1 comment

Comments

@ChirsGod
Copy link

使用的依赖为:
image
image
yml文件配置信息为:
image
项目运行报错信息为:

2023-09-13 18:16:37.945  WARN 44224 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wxMaService' defined in class path resource [com/binarywang/spring/starter/wxjava/miniapp/config/WxMaServiceAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.binarywang.wx.miniapp.api.WxMaService]: Factory method 'wxMaService' threw exception; nested exception is java.lang.NullPointerException: null key in entry: null=WxMaRedisBetterConfigImpl{appid='null', token='null', originalId='null', accessTokenLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@443b9ebb, tmpDirFile=null, jsapiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@4830c979, cardApiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@d98ce13, redisOps=me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps@1e86b2d1, keyPrefix='wa', accessTokenKey='wa:access_token:null', lockKey='wa:lock:null:'}
2023-09-13 18:16:37.998  INFO 44224 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-09-13 18:16:38.022 ERROR 44224 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wxMaService' defined in class path resource [com/binarywang/spring/starter/wxjava/miniapp/config/WxMaServiceAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.binarywang.wx.miniapp.api.WxMaService]: Factory method 'wxMaService' threw exception; nested exception is java.lang.NullPointerException: null key in entry: null=WxMaRedisBetterConfigImpl{appid='null', token='null', originalId='null', accessTokenLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@443b9ebb, tmpDirFile=null, jsapiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@4830c979, cardApiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@d98ce13, redisOps=me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps@1e86b2d1, keyPrefix='wa', accessTokenKey='wa:access_token:null', lockKey='wa:lock:null:'}
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
	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:944)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:338)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332)
	at com.herdsric.HerdsricCrmApplication.main(HerdsricCrmApplication.java:24)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.binarywang.wx.miniapp.api.WxMaService]: Factory method 'wxMaService' threw exception; nested exception is java.lang.NullPointerException: null key in entry: null=WxMaRedisBetterConfigImpl{appid='null', token='null', originalId='null', accessTokenLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@443b9ebb, tmpDirFile=null, jsapiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@4830c979, cardApiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@d98ce13, redisOps=me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps@1e86b2d1, keyPrefix='wa', accessTokenKey='wa:access_token:null', lockKey='wa:lock:null:'}
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
	... 19 common frames omitted
Caused by: java.lang.NullPointerException: null key in entry: null=WxMaRedisBetterConfigImpl{appid='null', token='null', originalId='null', accessTokenLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@443b9ebb, tmpDirFile=null, jsapiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@4830c979, cardApiTicketLock=me.chanjar.weixin.common.util.locks.RedisTemplateSimpleDistributedLock@d98ce13, redisOps=me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps@1e86b2d1, keyPrefix='wa', accessTokenKey='wa:access_token:null', lockKey='wa:lock:null:'}
	at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:32)
	at com.google.common.collect.SingletonImmutableBiMap.<init>(SingletonImmutableBiMap.java:40)
	at com.google.common.collect.ImmutableBiMap.of(ImmutableBiMap.java:49)
	at com.google.common.collect.ImmutableMap.of(ImmutableMap.java:70)
	at cn.binarywang.wx.miniapp.api.impl.BaseWxMaServiceImpl.setWxMaConfig(BaseWxMaServiceImpl.java:366)
	at com.binarywang.spring.starter.wxjava.miniapp.config.WxMaServiceAutoConfiguration.wxMaService(WxMaServiceAutoConfiguration.java:53)
	at com.binarywang.spring.starter.wxjava.miniapp.config.WxMaServiceAutoConfiguration$$EnhancerBySpringCGLIB$$c0126e69.CGLIB$wxMaService$0(<generated>)
	at com.binarywang.spring.starter.wxjava.miniapp.config.WxMaServiceAutoConfiguration$$EnhancerBySpringCGLIB$$c0126e69$$FastClassBySpringCGLIB$$7d29a5d2.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
	at com.binarywang.spring.starter.wxjava.miniapp.config.WxMaServiceAutoConfiguration$$EnhancerBySpringCGLIB$$c0126e69.wxMaService(<generated>)
	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.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 20 common frames omitted

请问如何在不配置的情况下,能使项目正常运行?

@binarywang
Copy link
Owner

你可以先加个空的参数

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants