能够从main方法触发器下载文件但不能从Java中通过wget从Rest Service下载

时间:2017-04-04 08:58:02

标签: java rest wget processbuilder

我将这个代码包含在一个方法中,当我通过main方法调用时,它运行得非常好,并通过wget为我下载所需的文件。我可以在项目目录中看到该文件。

同时当我将这个方法暴露在一个rest svc后面时,它将所需的url传递给方法,虽然它通过代码,但它似乎不会下载文件。 (在调试器模式下检查)。这是否意味着,它试图将其下载到其他地方或者在休息svc后面暴露的ProcessBuilder是一个问题吗?

    Runtime rt = Runtime.getRuntime();
    ProcessBuilder pb;
    int exitVal = 0;
    try {
        pb = new ProcessBuilder("wget", "-O", "myFile.csv",myFileUrl);
        pb.redirectErrorStream(true);
        Process downloadFirst = pb.start();
        BufferedReader reader = new BufferedReader(new InputStreamReader(downloadFirst.getInputStream()));
        while (reader.readLine() != null) {}
        exitVal = downloadFirst.waitFor();
        LOG.info("Downloaded my file with exitValue:" + exitVal);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:1)

正如@ MrSmith42所说,如果我在从其他服务部门打电话时指定完整路径,那就有用了。