微信公众平台 - 微信内置浏览器 WeixinJSBridge.invoke API 报错:权限拒绝解决方案

53 篇文章 ¥59.90 ¥99.00

在微信公众平台开发中,我们经常会使用微信内置浏览器提供的 WeixinJSBridge.invoke API 来实现与微信客户端的交互。然而,有时候在调用该 API 的过程中,我们可能会遇到一个常见的报错信息:system:access_denied(权限拒绝)。本文将为你介绍这个问题的解决方案。

该错误通常发生在以下情况下:

  1. 在微信内置浏览器外部调用 WeixinJSBridge.invoke API。
  2. 在微信内置浏览器中调用 WeixinJSBridge.invoke API,但未获取到所需的权限。

下面是一些解决方案,帮助你解决这个问题:

  1. 确保在微信内置浏览器中调用 WeixinJSBridge.invoke API
    你需要确保你的代码是在微信内置浏览器环境中执行的,而不是在其他浏览器或应用程序中。你可以通过检查 window.navigator.userAgent 来确定当前环境是否是微信内置浏览器。

    function isWeixinBrowser() {
         
         
      
2025-12-12 16:16:53,702 ERROR [TID:-] [11195411645638942729875] [JRESHandler-10.45.14.131:20892-thread-243] com.hundsun.amc.aspects.ApiRpcAspect - APIRPC_AOP_EXCEPTION: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@6a2ed679] unable to create manager for [/home/logs/task/202010120005/202010120005.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@739f4821[pattern=/home/logs/task/202010120005/202010120005.%d{yyyy-MM-dd}.%i.log, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=104857600)]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] [%X{requestId}] %c [%L] -| %msg%n, filePermissions=null, fileOwner=null]] at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:146) ~[log4j-core-2.17.2.jar!/:2.17.2] at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100) ~[log4j-core-2.17.2.jar!/:2.17.2] at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:217) ~[log4j-core-2.17.2.jar!/:2.17.2] at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:146) ~[log4j-core-2.17.2.jar!/:2.17.2] at com.hundsun.amc.utils.Log4j2Utils.start(Log4j2Utils.java:70) ~[amc-common-0.0.1-SNAPSHOT.jar!/:?] at com.hundsun.amc.utils.Log4j2Utils.getLogger(Log4j2Utils.java:104) ~[amc-common-0.0.1-SNAPSHOT.jar!/:?] at com.hundsun.amos.product.server.service.impl.ValuationBizServiceImpl.syncSetsClassifyTask(ValuationBizServiceImpl.java:236) ~[classes!/:?] at com.hundsun.amos.product.server.api.impl.ValuationApiServiceImpl.syncSetsClassifyTask(ValuationApiServiceImpl.java:88) ~[classes!/:?] at com.hundsun.amos.product.server.api.impl.ValuationApiServiceImpl$$FastClassBySpringCGLIB$$22db062.invoke(<generated>) ~[classes!/:?] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:84) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at com.hundsun.amc.aspects.ApiRpcAspect.serviceAOP(ApiRpcAspect.java:169) ~[amc-common-0.0.1-SNAPSHOT.jar!/:?] at sun.reflect.GeneratedMethodAccessor522.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_442] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_442] at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671) ~[spring-aop-4.3.19.RELEASE.jar!/:4.3.19.RELEASE] at com.hundsun.amos.product.server.api.impl.ValuationApiServiceImpl$$EnhancerBySpringCGLIB$$a44e0151.syncSetsClassifyTask(<generated>) ~[classes!/:?] at com.alibaba.dubbo.common.bytecode.Wrapper111.invokeMethod(Wrapper111.java) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:51) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:77) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:57) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.hundsun.amc.rpc.InvocationProvideCompressionFilter.invoke(InvocationProvideCompressionFilter.java:40) ~[amc-common-0.0.1-SNAPSHOT.jar!/:?] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:65) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:43) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:79) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:76) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.hundsun.jrescloud.rpc.def.manager.filter.DebugProviderFilter.invoke(DebugProviderFilter.java:92) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:87) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:133) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:39) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:40) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.hundsun.jrescloud.rpc.def.filter.RpcResultWrapper.invoke(RpcResultWrapper.java:73) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.hundsun.jrescloud.rpc.def.monitor.filter.MonitorProviderFilter.invoke(MonitorProviderFilter.java:61) ~[jrescloud-rpc-def-monitor-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.hundsun.jrescloud.rpc.def.bodyinfo.BodyInfoProviderFilter.invoke(BodyInfoProviderFilter.java:57) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.hundsun.jrescloud.rpc.def.log.LogContextFilter.invoke(LogContextFilter.java:31) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:115) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2] at com.hundsun.jrescloud.rpc.def.trace.TraceProviderFilter.invoke(TraceProviderFilter.java:162) ~[jrescloud-rpc-def-2.0.32.2.jar!/:2.0.32.2]
最新发布
12-13
解决 Java 程序中 Log4j2 的 `RollingFileManager` 无法为 `/home/logs/task/202010120005/202010120005.log` 创建管理器的 `IllegalStateException` 异常,可从以下几个方面着手: #### 检查文件路径和目录 确保指定的文件路径 `/home/logs/task/202010120005/202010120005.log` 存在且可访问。若目录不存在,程序可能无法创建日志文件。可以手动创建目录并检查其权限。 ```bash mkdir -p /home/logs/task/202010120005 chmod -R 775 /home/logs/task/202010120005 ``` #### 检查文件权限 程序需要有足够的权限在指定目录下创建和写入日志文件。可以通过修改文件目录的权限来解决。 ```bash chmod -R 775 /home/logs/task ``` #### 检查磁盘空间 确保磁盘有足够的空间来存储日志文件。如果磁盘空间不足,`RollingFileManager` 可能无法创建新的日志文件。可以使用以下命令检查磁盘空间: ```bash df -h ``` #### 检查日志配置文件 确保日志配置文件中关于 `RollingFileManager` 的配置正确。例如,检查日志文件的路径、文件名、滚动策略等配置是否正确。以下是一个 Log4j2 的配置示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <RollingFile name="RollingFile" fileName="/home/logs/task/202010120005/202010120005.log" filePattern="/home/logs/task/202010120005/202010120005.%d{yyyy-MM-dd}.%i.log"> <PatternLayout> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] [%X{requestId}] %c [%L] -| %msg%n</pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100 MB"/> </Policies> <DefaultRolloverStrategy max="7"/> </RollingFile> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="RollingFile"/> </Root> </Loggers> </Configuration> ``` #### 检查依赖冲突 不同版本的库可能存在兼容性问题,从而引发异常。可以使用 `mvn dependency:tree`(Maven 项目)或 `gradle dependencies`(Gradle 项目)命令查看项目的依赖树,找出冲突的依赖并进行排除。 ```xml <dependency> <groupId>example.group</groupId> <artifactId>example-artifact</artifactId> <version>example-version</version> <!-- 排除冲突依赖 --> <exclusions> <exclusion> <groupId>conflicting.group</groupId> <artifactId>conflicting-artifact</artifactId> </exclusion> </exclusions> </dependency> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值