java处理XFile连接超时问题

java nfs Xfile 连接响应超时处理

nfs远程获取文件,当远程nfs服务未启动时,java代码中XFile的连接会挂掉。这个程序就直接停住了。
之前用的是java调用mount命令行来做的,一直想用java代码来实现。后来想了个办法,有不对的大家也可以给给意见。

ExecutorService exec = Executors.newFixedThreadPool(1);
        Callable<XFile> call = new Callable<XFile>() {
            public XFile call() throws Exception {
                Thread thread = Thread.currentThread();
                thread.setName("NFS-CONNECT");//取特殊的名字,web项目可以后面加个sessinId啥的
                //开始执行耗时操作
                XFile xFile =   new XFile("nfs:// ip :/a/b/c/");
                xFile.exists();
                return xFile;
            }
        };
        
    try {
        Future<XFile> future = exec.submit(call);
        XFile xFile = future.get(2000, TimeUnit.MILLISECONDS); //任务处理超时时间设为 1 秒
        System.out.println("能否连接:" + xFile);
    } catch (TimeoutException ex) {
        System.out.println("处理超时啦....");
        ex.printStackTrace();
    } catch (Exception e) {
        System.out.println("处理失败.");
        e.printStackTrace();
    }
//上述程序,看似获取到了超时的返回,但是线程其实一直都在,现在要把线程关闭
    Set<Thread> set = Thread.getAllStackTraces().keySet();
    for(Thread thread:set){
        System.out.println(thread.getName());
        if("NFS-CONNECT".equals(thread.getName())){
            thread.stop();
            //thread.interrupt();
            //关闭    这里使用已经弃用的stop方法,这个线程hang住了,不会返回了,interrupt关闭不了。只能用stop了。上面代码已经收到数据返回了,这里应该不需要关心数据被破坏的问题了。stop 类似kill的功能吧
        }
    }

有用的上的可以看看
?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录....................................................................................................................................................2 说明....................................................................................................................................................3 一、使用到的开发工具:.........................................................................................................3 二、服务端开发步骤.................................................................................................................3 1、使用xfire 创建Web 服务。..............................................................................................3 2、创建服务接口和实现.........................................................................................................7 3、xfire 服务配置....................................................................................................................9 4、服务发布...........................................................................................................................10 5、为服务配置安全认证.......................................................................................................11 三、客户端开发.......................................................................................................................12 1、新建Web 工程................................................................................................................. 12 2、导入xfire 包.....................................................................................................................13 3、创建类定义.......................................................................................................................15 四、扩展1-使用xfire 插件创建客户端代码........................................................................ 18 1、插件安装.............................................................................................................................18 2、使用已安装的插件进行客户端代码生成........................................................................ 20 4、编写调用代码,调用服务.............................................................................................. 24 五、扩展2-使用axis(这时是1-4 版本)创建客户端代码.................................................... 28 1、使用WSDL2Java 工具根据WSDL 生成客户端代码.................................................. 28 2、新建工程项目...................................................................................................................30 3、编写调用代码...................................................................................................................31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值