2016-06-15 77 views
-1

我正在使用SoapUI來測試web服務。我的客戶端運行Windows 7,服務器在Linux上運行。對於某些測試用例,我需要在遠程服務器上更改配置文件。我想用一個時髦的腳本來實現這一點。第一步是用scp(kscp)推送文件,第二步是通過ssh(kitty)重新啓動應用程序。在Groovy和SoapUI無法正常工作的情況下調用cmd

第一個命令不起作用。第二就好了。我究竟做錯了什麼?

def scp = Runtime.getRuntime().exec("C:/pathTo/kscp.exe -pw password fileToUpload.txt [email protected]:/pathTo/remoteLocation/") 
scp.waitFor() 
def ssh = Runtime.getRuntime().exec("C:/pathTo/kitty.exe -load profile -m C:/pathTo/scriptToBeRunOnRemote") 
ssh.waitFor() 

如果我在一個普通的cmd中執行第一個命令,它可以正常工作。我也嘗試從.bat文件運行相同的命令,但沒有成功。

在此先感謝您的幫助和提示!

EDIT(發現的解決方案)

我只是找到了解決辦法。

def scp = Runtime.getRuntime().exec("cmd /c cd C:/pathTo/ & kscp.exe -pw password fileToUpload.txt [email protected]:/pathTo/remoteLocation/") 
+0

*不起作用* - *沒有成功* - 意味着什麼?它做什麼呢?錯誤信息?截圖? –

+0

最有可能的權限問題 –

+0

@MartinPrikryl沒有工作/沒有成功意味着什麼都沒有發生。如果我「log.info(scp)」輸出是一個沒有任何錯誤的進程ID。但該文件尚未轉移。 權限問題在哪裏發生?這兩個.exe文件都在我擁有完全權限(沒有管理員權限)的同一目錄中,並且服務器文件夾權限應該是正常的,因爲當我使用常規Windows cmd時該命令有效(並且正在傳輸文件)使用相同的命令 – TheZeroNine

回答

0

發現的解決方案

def scp = Runtime.getRuntime().exec("cmd /c cd C:/pathTo/ & kscp.exe -pw password fileToUpload.txt [email protected]:/pathTo/remoteLocation/") 
相關問題