背景:厂商反馈说中间件的客户端在被调用过程中不报错也不继续往下执行。
代码:分析得出的问题代码如下,在新建SDKClient实例时,将调用第二段代码构造器,但发现第二段代码中连第一个System.out.println都不打印。
SDKClient client = new SDKClient();
public SDKClient() {
System.out.println("before---LoadBalancer.getSingleInstance()");
balancer = LoadBalancer.getSingleInstance();
System.out.println("after---LoadBalancer.getSingleInstance()");
this.sdkHandler = new SDKClientHandler();
System.out.println("before---new FileCache()");
this.fileCache = new FileCache();
System.out.println("after---new FileCache()");
sdkHandler.setFileCache(fileCache);
}
分析过程:刚开始以为是客户端获取Zookeeper连接造成的,但是在服务端看zookeeper.out发现连接根本没有到服务端,让厂商在他们项目所在的机器上执行命令:wget [Zookeeper服务端主机号:Zookeeper服务端端口号] 发现连接能成功到Zookeeper服务端。