foxinmy/weixin4j

初始化WeixinProxy后获取token报错java.lang.ArrayIndexOutOfBoundsException: 0

Closed this issue · 6 comments

代码片段
private static WeixinProxy weixinProxy;
//实例化微信代理可以这样操作吗?还是怎么实例化appid和secret的?
weixinProxy = new WeixinProxy(new WeixinAccount(appId, secret),new FileCacheStorager());

weixinProxy.getTokenManager().getAccessToken();
这边调用获取token出现异常

如果是 weixinProxy = new WeixinProxy(); 这样现获取token不会报异常,但是我想要的是帐号信息不是从配置文件获取的

接口demo上是这么写的:
// 手动传入账号信息
weixinProxy = new WeixinProxy(new WeixinAccount("appid", "appsecret"),
new FileCacheStorager());
然后获取token也是报异常 weixinProxy.getTokenManager().getAccessToken();
java.lang.ArrayIndexOutOfBoundsException: 0

at com.foxinmy.weixin4j.http.message.JsonMessageConverter.supports(JsonMessageConverter.java:51)
at com.foxinmy.weixin4j.http.message.AbstractMessageConverter.canConvert(AbstractMessageConverter.java:54)
at com.foxinmy.weixin4j.http.message.JsonMessageConverter.canConvert(JsonMessageConverter.java:38)
at com.foxinmy.weixin4j.http.weixin.WeixinResponse.getAsObject(WeixinResponse.java:71)
at com.foxinmy.weixin4j.http.weixin.WeixinResponse.getAsResult(WeixinResponse.java:56)
at com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor.handleResponse(WeixinRequestExecutor.java:187)
at com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor.doRequest(WeixinRequestExecutor.java:141)
at com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor.get(WeixinRequestExecutor.java:117)
at com.foxinmy.weixin4j.qy.token.WeixinTokenCreator.create(WeixinTokenCreator.java:51)
at com.foxinmy.weixin4j.qy.token.WeixinTokenCreator.create(WeixinTokenCreator.java:20)
at com.foxinmy.weixin4j.cache.CacheManager.getCache(CacheManager.java:41)
at com.foxinmy.weixin4j.token.TokenManager.getAccessToken(TokenManager.java:37)
at com.foxinmy.weixin4j.qy.test.WeixinTest.test(WeixinTest.java:34)

=================================================
有四个接口实现核心类

WeixinProxy

微信公众号接口实现类,包含底部菜单创建、发送消息等接口。

使用示例:

// 默认使用classpath目录下的weixin4j.properties配置的账号信息,也可以用spring注入
WeixinProxy weixinProxy = new WeixinProxy();
// 手动传入账号信息
weixinProxy = new WeixinProxy(new WeixinAccount("appid", "appsecret"),
			new FileCacheStorager<Token>());

感谢反馈。

appsecret是否正确呢?

正确,直接请求是返回成功的,这个问题什么时候能解决呢

原因是因为微信没有返回任何数据,在解析数据的时候就会报错了,正常情况应该是有数据返回的,方便加QQ具体描述一下吗?416846353

恩,加你QQ了,小顽童

非常热情,赞,是自己调用接口方法不对