Ajuda para o TCC - Arquivio PDF

Bom dia galera, blz?

Estou em desenvolvimento com meu TCC para sistema via WEB usando JSP, Servlet e camadas…

As camadas são dividades em View, Controle, TO, Modelo e DAO. Cada camada, eu fiz um “package” dentro da pasta SRC criada pelo Eclipse.

A estrutura do Projeto está da seguinte forma:

-Projeto
–src
—Modelo
----Classe.java
–WebContant
—Arquivos
----Arquivo.pdf

Preciso que minha Classe.java, através do “java.io”, localize o Arquivo.pdf dentro da Pasta arquivo.

Segue o código abaixo:

	public boolean localizarContrato(){
		InputStream isContrato = getClass().getResourceAsStream("../../WebContent/Arquivos/Contrato.pdf");	
		if(isContrato == null)
			return false;
		else
			return true;

	}

Fiz outras pesquisas e descobri que o comando “…/” “sobe” o diretório. Neste caso, eu estou “saindo” da pasta Modelo, depois da pasta SRC e entrando na WebContent, Arquivos e localizando o arquivo. Porém, a variável “isContrato” sempre retorna “null” dando ao entender que o arquivo não foi localizado.

Fiz o teste até com o Debug do Eclipse e na hora que ele cria a variável, já me mostra “null”

Como posso resolver isso?

É o seguinte,

quando voce roda uma aplicação web, ela fica dentro do diretorio de um servidor, então a estrutura para encontrar arquivos fica um pouco diferente, pois voce depende do contexto no qual seu servlet esteja rodando. Tente fazer isso:

Se voce estiver em uma operação de POST/GET ou algo que consiga uma HttpServletRequest, tente usar o metodo getRealPath(“caminhoArquivo”)

ou senao, voce pode usar do ServletContext que também tem uma getRealPath("file’), senao me engano essa é a melhor opção.

Dá uma pesquisada.

A.L., agradeço sua resposta.

Estou usando o método Post e o Servlet tem o HttpServletRequest e HttpServletResponse

Esses métdos que vc mencionou getRealPath(“caminhoArquivo”) e getRealPath("file’) eu colocaria ele dentro da camada VIEW, que seria a JSP ou da camada Controle aonde estão os Request e Response?

[quote=mvergani]A.L., agradeço sua resposta.

Estou usando o método Post e o Servlet tem o HttpServletRequest e HttpServletResponse

Esses métdos que vc mencionou getRealPath(“caminhoArquivo”) e getRealPath("file’) eu colocaria ele dentro da camada VIEW, que seria a JSP ou da camada Controle aonde estão os Request e Response?
[/quote]

Coloca na camada de Controle, em alguma classe que consiga manipular essas classes do Servlet que falei, aqueles scriplets nos JSP são desaconselháveis hoje em dia.

Coloquei na camada conrole da seguinte forma:

System.out.println(""+request.getRealPath(""));

E a resposta foi:

C:\Documents and Settings\ANALITICO\MeusDocumentos\Daniel\Faculdade\Projeto.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Projeto

!!!