Arquivo em TXT não mostra quando hospedo no servidor linux

Bom dia galera, sou programador Delphi e todos os programadores java da empresa saíram. resolvi aceitar o desafio. por isso vou precisar muito da ajuda de vc´s pois não exite ninguém aqui nem para consultar alguma duvida kkkkk. chega de enrolação e vamos ao problema.

Problema: existe um sistema feito em java com jsp. quando rodo na minha maquina local funciona perfeitamente. mas quando rodo no servidor ele gera erro de permissão. já sei que o problema é permissão de pasta e tal mas não tenho acesso ao servidor para dar a permissão. preciso apenas saber onde grava e saber alterar a pasta onde grava para passar para o pessoal de redes dar a permissão.

Erro no servidor:

type Exception report

message java.io.FileNotFoundException: relatorio.txt (Permission denied)

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.io.FileNotFoundException: relatorio.txt (Permission denied)

codigo java:

String codlote;
try{
codlote = request.getParameter(“lote”).toString();
}catch(NullPointerException ex){
codlote = “”;
}
mLote objMLote = new mLote((conexao)request.getSession().getAttribute(“conexao”));
Vector cartoes = objMLote.listaCartaoLoteRelatorioPDF(String.valueOf(codlote));
Vector cartao = new Vector();

if(cartoes.size()>0){
String numLote="",numCartao="",saida="",numLoteAux="";

saida = "Lote Cartão\r\n";
for (int i = 0 ; i < cartoes.size(); i++){
    
	cartao = (Vector)cartoes.get(i);
    numLote = cartao.get(0).toString();
    numCartao = cartao.get(1).toString();
    if ((i==0) || 
    		(!numLoteAux.equals(numLote))){
    	numLoteAux=numLote;
    	saida = "Lote: "+numLote+"\r\n";
    	saida += "Cartões\r\n";
    }
    saida += numCartao+"\r\n";
}

objMLote.downloadPdf(saida,“relatorio.txt”,response);

eu não sei onde ele grava o arquivo. sei que ele cria em memoria, mas para mostrar acho que ele precisa escrever pois é onde está gerando o erro. na minha maquina quando copilo ele grava em C:\Users\marcelo.guimaraes\eclipse\jee-neon\eclipse.

Você não postou o código do método downloadPdf, mas provavelmente ele está gravando no diretório corrente da sua aplicação, já que o caminho é somente "relatorio.txt".

public void downloadPdf(String saida,String nomArquivo,HttpServletResponse response) throws IOException{
FileOutputStream fos = new FileOutputStream(nomArquivo);
fos.write(saida.getBytes());
File f = new File(nomArquivo);
byte[] content = read(f);
response.addHeader( “Content-Disposition”,
“attachment; filename=” + nomArquivo );
response.setContentType( “application/octet-stream” );
// FileOutputStream outStream = getResponse().getOutputStream();
ServletOutputStream outStream = response.getOutputStream();
try {
outStream.write( content );
outStream.flush();
} finally {
outStream.close();
}
}

Mas como coloco um caminho no código?

Viu? Você abre o FileOutputStream simplesmente informando o nome do arquivo, como é só um nome e não um caminho absoluto, ele vai criar o arquivo no diretório onde sua aplicação está executando.

Como é que você colocou o nome do arquivo?
É da mesma forma.