Problema com a classe FTPClient

Boa tarde a todos,
Estou desenvolvendo uma funcionalidade, que irá fazer o download de determinado arquivo via ftp (de um servidor) e gravar na máquina do usuário. No entanto, no desenvolvimento funciona perfeitamente, mas quando gero o .war e coloco no servidor, o download é feito no servidor !! Por exemplo: se você coloca “c:“nomePasta””, ele baixa na pasta existente do servidor e não na máquina que faz o acesso via http.
Segue abaixo o código para análise:

	ftp = new FTPClient();
	ftp.connect(host);
	ftp.enterLocalPassiveMode();
	ftp.login(user, pwd);
	int statusCon = ftp.getReplyCode();
	if (!FTPReply.isPositiveCompletion(statusCon)) {
		ftp.disconnect();
	}

	ftp.changeWorkingDirectory("clientes");
	ftp.changeWorkingDirectory(local);
	ftp.setFileType(FTP.BINARY_FILE_TYPE);
	ftp.enterLocalPassiveMode();

	List<String> nomeArq = new ArrayList<String>();

            String[] nomeArq = this.ftp.listNames();
	for (String nome : nomeArq) {
		nomeArq.add(nome);
	}
	
	OutputStream arqFtp;
	for(String nomeArquivo : nomeArq){
		 arqFtp = new FileOutputStream(localGrav + nomeArquivo);
		ftp.retrieve(nomeArquivo, arqFtp);
		
	}

           ftp.disconnect();


           Obrigado pela atenção.

não sei se é esse o problemas mais alem do

adicione

ftp.setUseEPSVwithIPv4(true);

isso resolve um problema de IP quando está em uma rede

e um conselho no seu loop a cada iteração aconselho a dar um close no outputStrem pq se der algum problema sua stream vai ficar aberta causando a parada da aplicação

qual dos dois vc ta usando?

Corrigi o fechamento da Stream, mas continua fazendo o download no próprio servidor. Sobre o diretório, utilizo os dois, um tenho um nome fixo, o outro é dinâmico (altero conforme o cliente).

Acredito que meu erro está ocorrendo porque uso java web, obrigado pela atenção.