IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 一次接口联调的经历 -> 正文阅读

[Java知识库]一次接口联调的经历

本以为又是平淡无奇的一周,突然,小韩的手机响了。

一看,又是合作厂商的电话。内心升起了一股烦躁的情绪。

小韩:“喂,啥事”?

合作厂商:“我们平台现在迁移了,咱们以前集成好的功能需要重新弄一下”。

小韩:“可不可以不弄”。

合作厂商:“不行啊,客户那边要求抓紧弄了,你能不能给个工期,看多会儿能弄好”。

小韩:“我先看看以前的代码吧,等我看完了我再回复你”。

挂了电话,小韩就开始弄了,把工程跑起来,一点点的捋代码吧。这个项目也是小韩后续接手的,前人建设完之后只留下了代码,也只能从代码开始入手了。

从哪开始呢?既然它是自动完成系统之间同步的,那肯定会有计划任务,工程是使用的spring框架,那应该是从配置文件开始找。瞅一瞅目录,发现这个貌似有点一致
在这里插入图片描述
spring是以配置的形式来管理类的,先看看哪个计划任务在做数据同步的事情

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
		lazy-init="false">
		<property name="triggers">
			<list>
			<ref bean="buildFileTask_trigger"/>
			<ref bean="buildFileInfoTask_trigger"/>
			</list>
		</property>
</bean>

找到了目标就需要顺腾摸瓜,先看看这两个bean是在哪定义的,查找一下,按住ctrl+f先搜索一把
在这里插入图片描述
找到了第一个瓜

<bean id="buildFileTask_trigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="buildFileTask" />
		</property>
		<property name="cronExpression">
			<value>0 0/2 7-23 * * ?</value>
		</property>
	</bean>

看来是配置了周期执行了,但是0 0/2 7-23 * * ?这个是个啥意思啊,不怕,我们有百度的法宝,打开百度,输入关键词搜索
在这里插入图片描述
我就喜欢这种在线的生成器,一目了然,打开把目前的配置输入进去看看是个什么规则
在这里插入图片描述
原来是两分钟运行一次啊,好了这个疑问没有了,我们继续顺腾摸瓜,用我们的搜索大法
在这里插入图片描述
又找到一层瓜

<bean id="buildFileTask"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类 -->
		<property name="targetObject">
			<ref bean="offDocExchService" />
		</property>
		<!-- 调用类中的方法 -->
		<property name="targetMethod">
			<value>getOfficialDocContentService</value>
		</property>
	</bean>

在我不懈的努力下,终于找到线索了,但是看上去这个是一个别名,不是一个类名,不怕,我们搜索一下,这个时候我们就需要通过文件检索了
在这里插入图片描述
在这里插入图片描述
终于费了一番功夫找到了类
在这里插入图片描述
找到文件就好办了,可以阅读源码了,费了多半天的功夫终于看懂了源代码的逻辑。这个时候厂商又催了。

合作厂商:“代码捋的怎么样了,能估计出工期来么”。

小韩:“别催好不好,代码我看了,是通过jsoup工具类调用的接口,你现在迁移了新平台,接口地址和方法改变了么”?

合作厂商:“具体情况我也不是太了解,你加一下我们工程师的微信,你俩微信上沟通”

不一会儿,微信提示一个陌生好友的请求,得了,虽说不情愿,加吧。

加上好友之后,双方就开始了各种折腾,反复的调试
在这里插入图片描述
但是接口始终不通,他也是各种出方案,一个方案比一个方案复杂。连续调了几天之后,已经到了无解的情景。

厂商催进度,客户也开始催进度,怎么解呢?要不问问公司的大佬吧,于是求助一下大佬
在这里插入图片描述
当然了大佬还是大佬给我找了不少入门的文章,总算知道卡在什么地方了。

思前想后,不能总卡在原点吧,还好以前和这个原厂商的经理合作过,卑微求助吧
在这里插入图片描述
但是合作伙伴比较忙,隔了一周才抽出空来,于是他拉了个群,我在群里说了一下症状,对方很快给出了解决方案,测试了一下,终于通了
在这里插入图片描述
卡了一周的问题,最终在加了一行代码的情况下顺利解决了

public static Connection getHttpPostConn(String url){
		Connection con = Jsoup.connect(url);
		con.ignoreContentType(true);
		con.timeout(30*1000);//最大超时时间  单位毫秒
		con.maxBodySize(15*1024*1024);//最大数据,给个10M
		con.header("formdata", "1");
		return con;
	}

虽然我也定位到就是请求头的问题,但是加了各种参数都不起作用,最终加的这个头才好使。费劲周折,总算是把这个突发的任务顺利解决了,未来还不知道啥困难在等着,遇到啥解决啥吧。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 13:57:03  更:2021-09-27 13:57:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:06:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码