Tomcat sumindo com pasta criada

7 respostas
F

Fala ae galera, blz?
Bom, estou fazendo um envio de arquivo no formulário, e mando criar uma pasta chamada upload na pasta raiz do meu projeto...

Cerca de 3 minutos depois, ela some.
O que parece que a pasta está sendo criada como temporária e depois de algum tempo sem uso ela some...

Já aconteceu isso com alguem?
Tem alguma configuração que deve ser feita no tomcat?

public String execute(){

		//TODO Validar envio de arquivo
			
		String filePath = servletRequest.getSession().getServletContext().getRealPath("/");
		String imagemCrop = StringUtils.stripAccents(userImageFileName).replace(" ", "_");
		
		final File file = new File(filePath+"\\upload");
		if(!file.exists()){
			file.mkdir();
		}
		copyFile(userImage, new File(file.getAbsolutePath()+"\\"+ imagemCrop));			
		
		new PublicacaoDAO().adiciona(publicacao, imagemCrop);
		addActionMessage("Publicação cadastrada com sucesso");
		return "ok";

	}

7 Respostas

Hebert_Coelho

Não aconselhável criar/editar/remover pastas dentro da estrutura do servidor. Pq vc não cria essa pasta fora do servidor?

F

Eu achava que ela ia aparecer na raiz do meu projeto no workspace…
Mas quando eu crio, ela joga na pasta do tomcat…

Tipo:

D:\Documents and Settings\Desktop\apache-tomcat-6.0.35\wtpwebapps\scb\upload

O que devo fazer?

Hebert_Coelho

Como você está criando?

F
public String execute(){

		//TODO Validar envio de arquivo
			
		String filePath = servletRequest.getSession().getServletContext().getRealPath("/");
		String imagemCrop = StringUtils.stripAccents(userImageFileName).replace(" ", "_");
		
		final File file = new File(filePath+"\\upload");
		if(!file.exists()){
			file.mkdir();
		}
		copyFile(userImage, new File(file.getAbsolutePath()+"\\"+ imagemCrop));			
		
		new PublicacaoDAO().adiciona(publicacao, imagemCrop);
		addActionMessage("Publicação cadastrada com sucesso");
		return "ok";

	}

servletRequest.getSession().getServletContext().getRealPath("/");

Ele que pega esse caminho do tomcat!

Hebert_Coelho

Pq ao invés de fazer: servletRequest.getSession().getServletContext().getRealPath("/");
Você não coloca esse path como caminho do PC em algum arquivo de configuração?

F

Mas isso vai pra web, e a ideia era por em alguma psta dentro do projeto poder fazer download!

Hebert_Coelho

Exatamente por isso que eu falei para você colocar esse path em um arquivo de propriedades.

Quando seu WAR/EAR for para produção, você apenas alteraria o valor nesse arquivo para o devido caminho.

E quando fosse fazer deploy novamente, você nem precisaria mexer mais nesse arquivo.

Pelo menos é esse o padrão que eu vejo em toda a empresa que eu já trabalhei. ^^

Criado 13 de abril de 2012
Ultima resposta 13 de abr. de 2012
Respostas 7
Participantes 2