sshexec中的ConnBean对象未被清除或重置

时间:2016-01-06 16:23:54

标签: netbeans ssh javafx scenebuilder

我正在使用Netbeans 8.1和JavaFX场景构建器制作App。我需要在点击按钮上执行ssh连接测试,我在https://code.google.com/p/sshxcute/使用了sshexec jar,我在我的应用程序中尝试了它,请参阅下面的代码片段

     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对象不会重置。
  2. 预期:每次点击都应该更新值。

    E.g。如果用户在第一次在控制台中打印的行下方提供1.1.1.1

    Trying to connect root@1.1.1.1
    

    在secoond中,try用户在控制台上打印的行下方提供2.2.2.2

    Trying to connect root@1.1.1.1
    

    所以,我担心的是:

    1. 我的代码是对的吗?我错过了一些重要的内容吗?

    2. 在每次点击时,都应该对给定的值进行连接。

    3. P.S。 :在system.print中显示正确的值(根据用户输入),但是当ssh.connect();从SSHEXEC api调用的方法显示了第一个传递的值。

      如果问题不清楚,请告诉我。

      更新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);
      

      任何人都知道为什么会发生这种废话?

1 个答案:

答案 0 :(得分:0)

关于第一个问题,请查看example on the MSDN问题以及

中提到的解决方案

第二个问题可以通过设置来解决 SSHExec.setOption(IOptionName.INTEVAL_TIME_BETWEEN_TASKS, 50l);

header <- c("symbol", "gene1", "gene2", "gene3") study1 <- c("0.06", "0.01", "NA", "NA") study2 <- c("0.09", "NA", "0.02", "0.08", "0.07") study3 <- c("0.09", "NA", "NA", "0.1") DF<- data.frame(header, study1, study2, study3, stringsAsFactors=FALSE) DF ID study1 study2 study3 1 gene1 0.06 0.09 0.09 2 gene2 0.01 NA NA 3 gene3 NA 0.02 NA 4 gene4 NA 0.07 0.1

您可以在上述链接的第4.5节中找到此方法。