Skip to content

使用wx-java-mp-spring-boot-starter时,如果没有设置wx.mp.appId,希望输出更加准确的错误日志 #2581

@JasonLaw1994

Description

@JasonLaw1994

简要描述

使用wx-java-mp-spring-boot-starter时,如果没有设置wx.mp.appId,希望输出的日志提示“wx.mp.appId为null”。

模块版本情况

  • WxJava 模块名: weixin-java-mp
  • WxJava 版本号: 4.2.0

详细描述

执行WxMpServiceAutoConfiguration,之后会调用BaseWxMpServiceImpl. setMultiConfigStorages(...),最后会导致NullPointerException,本来这样子是能够打印出明确的错误日志的,但是WxMpDefaultConfigImpl.toString()却出现异常了,导致日志并没有表达出“wx.mp.appId为null”。

日志

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @6f446a8a
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[na:na]
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[na:na]
	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) ~[na:na]
	at java.base/java.lang.reflect.Field.setAccessible(Field.java:172) ~[na:na]
	at com.google.gson.internal.reflect.UnsafeReflectionAccessor.makeAccessible(UnsafeReflectionAccessor.java:44) ~[gson-2.8.9.jar:na]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:159) ~[gson-2.8.9.jar:na]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102) ~[gson-2.8.9.jar:na]
	at com.google.gson.Gson.getAdapter(Gson.java:489) ~[gson-2.8.9.jar:na]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117) ~[gson-2.8.9.jar:na]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166) ~[gson-2.8.9.jar:na]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102) ~[gson-2.8.9.jar:na]
	at com.google.gson.Gson.getAdapter(Gson.java:489) ~[gson-2.8.9.jar:na]
	at com.google.gson.Gson.toJson(Gson.java:727) ~[gson-2.8.9.jar:na]
	at com.google.gson.Gson.toJson(Gson.java:714) ~[gson-2.8.9.jar:na]
	at com.google.gson.Gson.toJson(Gson.java:669) ~[gson-2.8.9.jar:na]
	at com.google.gson.Gson.toJson(Gson.java:649) ~[gson-2.8.9.jar:na]
	at me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl.toString(WxMpDefaultConfigImpl.java:181) ~[weixin-java-mp-4.2.8.B.jar:na]
	at java.base/java.lang.String.valueOf(String.java:4215) ~[na:na]
	at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:30) ~[guava-30.0-jre.jar:na]
	at com.google.common.collect.SingletonImmutableBiMap.<init>(SingletonImmutableBiMap.java:42) ~[guava-30.0-jre.jar:na]
	at com.google.common.collect.ImmutableBiMap.of(ImmutableBiMap.java:71) ~[guava-30.0-jre.jar:na]
	at com.google.common.collect.ImmutableMap.of(ImmutableMap.java:124) ~[guava-30.0-jre.jar:na]
	at me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl.setWxMpConfigStorage(BaseWxMpServiceImpl.java:485) ~[weixin-java-mp-4.2.8.B.jar:na]
	at com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration.wxMpService(WxMpServiceAutoConfiguration.java:43) ~[wx-java-mp-spring-boot-starter-4.2.8.B.jar:na]
	at com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration$$EnhancerBySpringCGLIB$$5af1745e.CGLIB$wxMpService$0(<generated>) ~[wx-java-mp-spring-boot-starter-4.2.8.B.jar:na]
	at com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration$$EnhancerBySpringCGLIB$$5af1745e$$FastClassBySpringCGLIB$$7264bcbe.invoke(<generated>) ~[wx-java-mp-spring-boot-starter-4.2.8.B.jar:na]
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.3.18.jar:5.3.18]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.3.18.jar:5.3.18]
	at com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration$$EnhancerBySpringCGLIB$$5af1745e.wxMpService(<generated>) ~[wx-java-mp-spring-boot-starter-4.2.8.B.jar:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.18.jar:5.3.18]
	... 34 common frames omitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions