¿Cómo ejecutar el comando de shell utilizando el canal SFTP en JSch?

Estoy tratando de enumerar todos los archivos * .xml en el directorio. Hago cdprimero y luego estaba tratando de ejecutar:

find . -type f -name *.xml

Pero no estoy seguro de cómo hacerlo exactamente. Hubo algún ejemplo sobre el canal Exec, pero ¿hay alguna manera de hacer la búsqueda con SFTP?

String username = "abcd";
String password = "pqrst";
String host = "xxxxxx.xxxx.xxx";
int port = 22;
String SFTPWORKINGDIR  = "/xxx/xxx/xxx/xxxx";

Session     session     = null;
ChannelSftp channelSftp = null;

try {
    JSch jSch = new JSch();
    session = jSch.getSession(username, host, port);
    session.setConfig("StrictHostKeyChecking", "no");
    session.connect();
    channelSftp = (ChannelSftp) session.openChannel("sftp");
    channelSftp.connect();
    channelSftp.cd(SFTPWORKINGDIR);

    // List all the *xml file.
    // ------------ Want to execute 'find . -type f -name "*.xml" ' here------------

    /*  Vector fileList = channelSftp.ls() 

    for(int i=0; i<fileList.size();i++){
        LsEntry entry = (LsEntry) fileList.get(i);
        System.out.println(entry.getFilename());
    }*/

} catch (JSchException | SftpException e) {
    e.printStackTrace();
}
finally {
    if(session != null) session.disconnect();
    if(channelSftp != null) channelSftp.disconnect();
}
Respuesta 1

¿Es posible ver la lista completa de la pila de llamadas para un método dado en mi aplicación usando alguna herramienta? Quiero ver el resultado similar que puedo ver en JProfiler para un método dado. Sin embargo, yo ...

Tengo muchos lugares en mi código donde tengo un método que es idéntico a otro, excepto que los objetos que usan son diferentes, como en el siguiente ejemplo: private void applyContractualFields () {...

Al intentar implementar una aplicación springboot en un tomcat externo, no puedo implementarlo. En el pom.xml, si excluyo la dependencia de tomcat, entonces no estoy enfrentando un error de tiempo de compilación. Desde que he usado ...

Tengo un método que intento llamar dinámicamente. Ese método tiene un argumento 'stringValue'. El método que estoy tratando de invocar es en la clase padre (receptores ??). No puedo entender cómo llegar ...