Abrir PDF no iframe [RESOLVIDO]

Salve galera,

tenho uma aplicação struts 1.x que precisa abrir PDF que está no num diretório do servidor, mas quando a página é chamada recebo esse erro do navegador:

O firefox nao sabe como abrir esse endereço…
o protocolo c nao está associado a nenhum aplicativo.

Estou chamando meu iframe assim:

<iframe src="${frm.prontuarioPath}" width="100%" frameborder="0" name="rel" id="iFrameRelatorioId" style="margin-top:2px;height:600px;"></iframe>

A variável prontuarioPath traria algo como C:\Prontuario\pecrfe_97.pdf

Acredito que o problema está na forma como esse caminho da variável prontuarioPath é montado, alguém sabe qual a forma correta?

acredito que seja na forma de download…:

http://seuServidorWeb/algumaPasta/seuArquivo.pdf

tem que ter o Acrobat Reader atualizado, caso não tenha, ele vai fazer download…

Vc deve ter um servlet que leia o arquivo do servidor e devolva para o cliente.
Por exemplo, se sua aplicação roda no servidor com nome serv1 e é acessada assim: http://serv1:8080/apliacacao, e seu iframe aponta para C:\Temp\arquivo.pdf, por exemplo, não será aberto, mesmo que no cliente exista o arquivo no local informado.
O melhor seria vc fazer um servlet para baixar o documento e passar para o cliente um caminho assim: http://serv1:8080/apliacacao/download?arquivo=arquivo.pdf.

Valeu pelas respostas!!!

mas ainda não ficou totalmente claro para mim como o servlet deve ser implementado, alguém sabe onde eu posso encontrar um exemplo?

abs,

Fazer um mais ou menos aqui.

public class DownloadServlet extends HttpServlet { protected void doGet(HttpServletRequesr request, HttpServletResponse response) { File file = new File("O CAMINHO DO ARQUIVO, FIXO OU POR PARAMETRO"); // Verifica se o arquivo existe, se por ser lido, etc ... FileInputStream inputStream = new FileInputStream(file); byte [] bytes = IOutils.toByteArray(inputStream); // Commons IO response.setContentType("application/pdf"); // Colocar dinamico, pelo arquivo response.setContentLenght(bytes.lenght); response.setHeader("Content-Disposition", "inline; filename=\"arquivo.pdf\""); // Colocar dinamico response.getOutputStream().write(bytes); } }

Aí é só mapear no web.xml e chamar para fazer o download do arquivo no lado do servidor

Valeu lsjunior !!!

a solução era justamente essa, muito obrigado mesmo cara.

abs,