面试官说“一开始工资不会给你太高,你可以接受吗?” 怎么怼回去??

摘要:
晚上上线,发现生产环境在启动服务时也有这个错误。可是,整个工程也查不到emaxcardClient。各种排查,各种分析,各种怀疑。我们3个人都无法确定,不过唐玮同学说,这个依赖可以拿掉。让运维重新构建Jenkins后,果然,job可以正常启动了!!

面试官:一开始工资不会给你太高,你可以接受吗?

程序员:我一开始工作表现不会太好,你可以接受吗?

面试官:emmmmmm

面试官说“一开始工资不会给你太高,你可以接受吗?” 怎么怼回去??第1张


面试官:“你简历上写着说你心算速度很快,那我问问你,十九乘以十七是多少?”

程序员脱口而出:“三十六!”

面试官:“这也差太远了吧。”

程序员:“但是很快没错吧。”

面试官说“一开始工资不会给你太高,你可以接受吗?” 怎么怼回去??第2张


----我是分割线,重点看下面----

draft_job应用,测试环境,Jenkins构建完成,QA反映执行job没反应。xshell连接到服务器上查看log,发现有如下错误导致服务未正常启动。

2019-07-24 22:04:43,309 INFO  [main-SendThread(10.0.2.110:2181)] (ClientCnxn.java:1032) - Opening socket connection to server 10.0.2.110/10.0.2.110:2181. Will not attempt to authenticate using SASL (unknown error)
2019-07-24 22:04:43,355 INFO  [main-SendThread(10.0.2.110:2181)] (ClientCnxn.java:876) - Socket connection established to 10.0.2.110/10.0.2.110:2181, initiating session
2019-07-24 22:04:43,364 INFO  [main-SendThread(10.0.2.110:2181)] (ClientCnxn.java:1299) - Session establishment complete on server 10.0.2.110/10.0.2.110:2181, sessionid = 0x16b69ed782c004c, negotiated timeout = 40000
2019-07-24 22:04:43,367 INFO  [main-EventThread] (ConnectionStateManager.java:228) - State change: CONNECTED
2019-07-24 22:04:43,428 WARN  [main] (AbstractApplicationContext.java:549) - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'creditLimitAnalyseReportJob': Unsatisfied dependency expressed through field 'creditLimitReportServiceClient': Error creating bean with name 'creditLimitReportServiceClient': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'emaxcardClient' is defined; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'creditLimitReportServiceClient': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'emaxcardClient' is defined
2019-07-24 22:04:43,930 INFO  [Curator-Framework-0] (CuratorFrameworkImpl.java:821) - backgroundOperationsLoop exiting
2019-07-24 22:04:43,933 INFO  [main] (ZooKeeper.java:684) - Session: 0x16b69ed782c004c closed
2019-07-24 22:04:43,934 INFO  [main-EventThread] (ClientCnxn.java:519) - EventThread shut down for session: 0x16b69ed782c004c

反馈给开发这个creditLimitAnalyseReportJob的唐玮,他经过重新构建Jenkins,解决了。
当时手头有其他事儿,也就没有在意。

晚上上线,发现生产环境在启动服务时也有这个错误。而且通过重新构建的方式并无卵用。

于是,我们3个人开始细查这个问题。
这个错误log信息很明确:名字是emaxcardClient的bean没有声明,导致context初始化异常。

可是,整个工程也查不到emaxcardClient。

各种排查,各种分析,各种怀疑。

后来我的怀疑被证明是解决问题的关键。这个项目的代码是从我们以前的pay2.0项目copy过来的。上面错误里的creditLimitReportServiceClient派生自BaseClient,BaseClient是在draft_job所依赖的draft_common包里定义的。BaseClient里有对如下@Resource注解,这里是 "draftClient"。然后去翻看之前pay2.0项目与之对应的emax_common代码,那个BaseClient里面是"emaxcardClient"。 因此,我推断,错误log里提到的creditLimitReportServiceClient阴差阳错的继承了emax_common包的BaseClient了??
我一边是先让运维把构建出来的zip包给我,好看看lib里是否真有emax_common;一边去查看pom文件里定义的依赖了。可是,并没有依赖emax-common啊!

运维把zip包发给我们之后,果然,lib包里有emax_common。那么,pom里没有直接依赖emax_common,是不是存在间接依赖呢?我把焦点锁定在了一个名叫warning_thrift的包。我们3个人都无法确定,不过唐玮同学说,这个依赖可以拿掉。那就先拿掉试试再说。
让运维重新构建Jenkins后,果然,job可以正常启动了!!

packagecom.emaxcard.rpc.client;
public abstract classBaseClient {
    @Resource(name = "draftClient")
    privateThriftClientProxy clientProxy;
    private static final Logger log = LoggerFactory.getLogger(BaseClient.class);

draft项目draft_common是从pay2.0项目的emax_common复制过来的,其中,BaseClient类的package未曾修改。当draft_job同时依赖了draft_common和emax_common,那么就出现了上面的情况。所以,为了避免日后再出现类似问题,还是改一下package比较靠谱。

免责声明:文章转载自《面试官说“一开始工资不会给你太高,你可以接受吗?” 怎么怼回去??》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS加速计、陀螺仪(CoreMotion.framework)vmware 安装 centos7 记录笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java(多)线程中注入Spring的Bean

问题说明 今天在web应用中用到了Java多线程的技术来并发处理一些业务,但在执行时一直会报NullPointerException的错误,问题定位了一下发现是线程中的Spring bean没有被注入,bean对象的值为null。 原因分析 web容器在启动应用时,并没有提前将线程中的bean注入(在线程启动前,web容易也是无法感知的) 解决方案 方法有...

java web定时任务---quartz

写在前面:   前面有简单的记录下Timer定时的用法,但是在此次项目中,选择的是quartz来完成定时操作任务的。两者都可以完成定时操作,但是spring可以整合quartz,并且配置起来也比较简便,还可以同时跑多个任务。就选择了quartz,quartz的用法也很强大,这里也是简单的记录下。   第一步还是需要写自己的任务类,如果有涉及到对数据库的增删...

Spring Boot -- Spring Boot之@Async异步调用、Mybatis、事务管理等

这一节将在上一节的基础上,继续深入学习Spring Boot相关知识,其中主要包括@Async异步调用,@Value自定义参数、Mybatis、事务管理等。 本节所使用的代码是在上一节项目代码中,继续追加的,因此需要先学习上一节内容。 一、使用@Async实现异步调用 要在springboot中使用异步调用方法,只要在被调用的方法上面加上@Async就可以...

A component required a bean of type 'com.example...' that could not be found解决办法

工程启动报错A component required a bean of type ‘com.example…’ that could not be found 解决办法一:1、再启动类添加mapper包扫描注解即可@MapperScan(“com.example.firstspringboot.dao”) 解决办法二:在每个mapper接口上添加@m...

理解 Spring(二):AOP 的概念与实现原理

什么是 AOP AOP 的基本术语 Spring AOP 的简单应用 Spring AOP 与动态代理 Spring AOP 的实现原理(源码分析) 扩展:为什么 JDK 动态代理要求目标类必须实现接口 什么是 AOP AOP(Aspect Oriented Programming,面向切面编程)是一种编程范式,它是对 OOP(Object O...

Red5源代码分析

原文地址:http://semi-sleep.javaeye.com/blog/348768 Red5如何响应rmpt的请求,中间涉及哪些关键类? 响应请求的流程如下: 1.Red5在启动时会调用RTMPMinaTransport的start()方法,该方法会开启rmtp的socket监听端口(默认是1935),然后使用mina(apache的io操作...