2016-01-06 55 views
1

我正在使用Netbeans 8.1和JavaFX場景生成器來製作App。當我需要執行上的一個按鈕點擊一個ssh連接測試,我已經從https://code.google.com/p/sshxcute/這裏使用sshexec罐子,我想在我的應用程序請參見下面的代碼片段sshexec中的ConnBean對象沒有被清除或重置

 SSHExec ssh = null; 

    int val = 0; 
    String getURLFromUI=txtServerUrl.getText().trim(); 
    String getUsernameFromUI=txtUserName.getText().trim(); 
    String getPasswordFromUI=pwdPassword.getText().trim(); 

     System.out.println("URL : " +getURLFromUI); 
      System.out.println("User : " +getUsernameFromUI); 
      System.out.println("Pass : " +getPasswordFromUI); 
    try { 

     ConnBean cb = new ConnBean(getURLFromUI, getUsernameFromUI,getPasswordFromUI); 
     ssh = SSHExec.getInstance(cb); 

     boolean connected = ssh.connect(); 
     if(connected){ 

      val++; 
      showBuildServerStatus.setText("Connection Done!!!!!!" +val); 
     }else{ 
      val++; 
      showBuildServerStatus.setText("Connection Failed!!!!!!"+val); 
     } 
    // ssh = SSHExec.getInstance(cb1); 
    } 
    catch (Exception e) 
     { 
      System.out.println(e.getMessage()); 
      e.printStackTrace(); 
     } 
     finally 
      { 

       ssh.disconnect(); 

       } 

當我運行我的應用程序,發現以下問題:

  1. 如果我用有效/無效參數進行3-4次點擊(不重新啓動應用程序),ConnBean對象不會被重置。

預計:每次點擊值都應該更新。

E.g.如果用戶在第一次低於行控制檯打印提供1.1.1.1

Trying to connect [email protected] 

在secoond嘗試用戶提供印在控制檯2.2.2.2下面一行:

Trying to connect [email protected] 

所以,我關心的是:

  1. 我的代碼是否正確?我錯過了一些重要的東西嗎?

  2. 在每次點擊連接時都應該對給定值進行連接。

P.S. :在system.print顯示正確的值(按照用戶輸入),但是當ssh.connect();方法從SSHEXEC api調用,它顯示了第一個傳遞的值。

如果問題不清楚,請讓我知道。

UPDATE 1:

通過使用https://code.google.com/p/sshxcute/issues/detail?id=8上述問題本補丁是固定的。但還有一件事值得關注的是

成功執行腳本後,它顯示Now wait 5 seconds to begin next task ...並且腳本再次執行。看下面的代碼片段:

CustomTask sampleTask = new ExecCommand("/usr/checkoutcode.sh"); 
Result rs = ssh.exec(sampleTask); 

任何人有任何想法爲什麼這個廢話發生?

+0

對不好的英語道歉,請隨時更新。 – MonsterJava

+0

存在與您的問題有關的問題。你可以找到一個解決方案[這裏](https://code.google.com/p/sshxcute/issues/detail?id=8) – Inge

+0

非常感謝@Inge ..看起來非常有用。 – MonsterJava

回答

0

關於第一個問題,看看this問題和解決方案中有提到

問題二可以通過設置 SSHExec.setOption(IOptionName.INTEVAL_TIME_BETWEEN_TASKS, 5000l);

得到解決,以

SSHExec.setOption(IOptionName.INTEVAL_TIME_BETWEEN_TASKS, 50l);

你可以找到這個方法在上面鏈接的第4.5節。