xxljob通过http工具调用远程服务报错

Blade 已结 1 554
78780638
78780638 剑圣 2022-03-22 14:42

一、该问题的重现步骤是什么?

1. 通过xxljob启动器,远程调用其他需要切换数据源的接口遇到问题,直接引入api通过feign调用不成功。

2. 通过Http工具调用auth获取token也报错。

3.


二、你期待的结果是什么?实际看到的又是什么?

期望可以通过定时任务调用成功。

实际报错。

image.png

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex 2.9.0

四、请提供详细的错误堆栈信息,这很重要。

2022-03-22 13:32:12.590  WARN 25764 --- [  XNIO-1 task-1] c.a.druid.pool.DruidAbstractDataSource   : discard long time none received connection. , jdbcUrl : jdbc:mysql://10.0.2.222:3306/cptg_platform?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true, version : 1.2.8, lastPacketReceivedIdleMillis : 3232087

2022-03-22 14:24:59.083  WARN 25764 --- [  XNIO-1 task-1] c.a.druid.pool.DruidAbstractDataSource   : discard long time none received connection. , jdbcUrl : jdbc:mysql://10.0.2.222:3306/cptg_platform?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true, version : 1.2.8, lastPacketReceivedIdleMillis : 160212

2022-03-22 14:24:59.133  WARN 25764 --- [  XNIO-1 task-1] o.s.s.o.provider.endpoint.TokenEndpoint  : Handling error: InvalidRequestException, Missing grant type

2022-03-22 14:29:58.356  WARN 25764 --- [  XNIO-1 task-1] c.a.druid.pool.DruidAbstractDataSource   : discard long time none received connection. , jdbcUrl : jdbc:mysql://10.0.2.222:3306/cptg_platform?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true, version : 1.2.8, lastPacketReceivedIdleMillis : 299235

2022-03-22 14:29:58.387  WARN 25764 --- [  XNIO-1 task-1] o.s.s.o.provider.endpoint.TokenEndpoint  : Handling error: InvalidRequestException, Missing grant type

五、若有更多详细信息,请在下面提供。

1条回答
  •  admin
    admin (最佳回答者)
    2022-03-22 16:21

    正确做法是先用HttpUtil调用token接口获取token,然后将token设置请求头,再去调用业务接口来切换数据源。

    你说的token报错,报的什么错?代码是怎么写的,具体返回是什么,没有提供的话不太好帮忙判断。


    另外还有一种通用的做法就是专门为定时任务创建一个服务,服务内配置好数据源,对接口配置普通的认证方式,不走token认证,具体可以看文档:5.3.4章节。

    这样的话只需要给HttpUtil配置好认证逻辑就可以直接调用了。

    0 讨论(1)
提交回复