xxl-rpc remoting request fail, http HttpStatus[302] invalid

初次体验 分布式任务调度平台 xxl-job ,参考官网
详细的介绍 ,相信你也可以快速地在项目里整合起来。

废话不多说,在我启动执行器的项目的时候,竟然启动失败了, 直接po上我遇到的问题:
在这里插入图片描述

一开始看着控制台的错误日志,一直以为是请求 http://127.0.0.1:8080/xxl-job-admin/api 由于没有xxl-job-admin的成功登录,被拦截并重定向了login 页面,我还傻傻的去改了 xxl-job-admin 下的 拦截器代码,再重启 xxl -job -admin ,还是报同样的错误 。

后来又继续纠结 那个 9999端口,记得在执行器的项目的application.properties 里配置了个9999
xxl-rpc remoting request fail, http HttpStatus[302] invalid_第1张图片
查了下 , 只有在XxlJobConfig.java 配置类里看到了引用,百思不得其解, 错哪了呢?
xxl-rpc remoting request fail, http HttpStatus[302] invalid_第2张图片

解决思路
xxl-job 的开发者不是已经提供了很多sample的嘛。好好看,仔细看看,

xxl-rpc remoting request fail, http HttpStatus[302] invalid_第3张图片

咦,sample里怎么用的是@XxlJob 来声明每个任务呢,我还在使用@JobHandler。好吧,明显我的版本比sample里的旧嘛。
xxl-rpc remoting request fail, http HttpStatus[302] invalid_第4张图片
查了下sample的引用的xxl-job-core版本

<version>2.2.1-SNAPSHOT</version>

但是要注意的是,这里很明显 ,2.2.1-SNAPSHOT 是一个本地的jar 包,因为我把源码全部下载下来了。这三个项目都是本地引用的。
xxl-rpc remoting request fail, http HttpStatus[302] invalid_第5张图片

最终解决办法
参考sample , 升级xxl-job的版本 ,没商量了,因为百度了很久,也没发现哪个网友提出了解决方法,应该是我自己的版本引用的不对吧。毕竟我的xxl-job-admin 也就是管理模块 也是直接取当时码云上源码的最新代码。

主要步骤:

  • pom 文件重新导入。参考当时maven repository 官网找到和 2.2.1-SNAPSHOT 版本接近的 ,那就是 2.2.0 了。
    xxl-rpc remoting request fail, http HttpStatus[302] invalid_第6张图片
  • XxlJobConfig.java 文件 直接从 sample里粘贴过来
@Configuration
public class XxlJobConfig {
   private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

   @Value("${xxl.job.admin.addresses}")
   private String adminAddresses;

   @Value("${xxl.job.accessToken}")
   private String accessToken;

   @Value("${xxl.job.executor.appname}")
   private String appname;

   @Value("${xxl.job.executor.address}")
   private String address;

   @Value("${xxl.job.executor.ip}")
   private String ip;

   @Value("${xxl.job.executor.port}")
   private int port;

   @Value("${xxl.job.executor.logpath}")
   private String logPath;

   @Value("${xxl.job.executor.logretentiondays}")
   private int logRetentionDays;


   @Bean
   public XxlJobSpringExecutor xxlJobExecutor() {
       logger.info(">>>>>>>>>>> xxl-job config init.");
       XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
       xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
       xxlJobSpringExecutor.setAppname(appname);
       xxlJobSpringExecutor.setAddress(address);
       xxlJobSpringExecutor.setIp(ip);
       xxlJobSpringExecutor.setPort(port);
       xxlJobSpringExecutor.setAccessToken(accessToken);
       xxlJobSpringExecutor.setLogPath(logPath);
       xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

       return xxlJobSpringExecutor;
   }
}
  • 任务类从@JobHandler 转成 @XxlJob 的写法
//新版本
@Component
@Slf4j
public class DemoJobHandler {

    @XxlJob(value = "demoJobHandler")
    public ReturnT<String> execute(String s) throws Exception {
        System.out.println("=====hello world=====");
        return ReturnT.SUCCESS;
    }
}


//旧版本
@JobHandler(value = "demoJobHandler")
@Component
@Slf4j
public class DemoJobHandler extends IJobHandler {

    @Override
    public ReturnT<String> execute(String s) throws Exception {
        System.out.println("=====hello world=====");
        return ReturnT.SUCCESS;
    }
}

启动成功后的日志:
xxl-rpc remoting request fail, http HttpStatus[302] invalid_第7张图片

最终教训
多看官方文档,多看官方提供的案例,注意下版本版本版本统一!

你可能感兴趣的:(web)