weixin-java-miniapp-demo icon indicating copy to clipboard operation
weixin-java-miniapp-demo copied to clipboard

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

Open ChirsGod opened this issue 2 years ago • 1 comments

使用的依赖为: 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

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

ChirsGod avatar Sep 13 '23 10:09 ChirsGod

你可以先加个空的参数

binarywang avatar Mar 18 '24 10:03 binarywang