antes de vc dar o flush tem q dizer ao browser o tipo de conteudo vc q mandar, ou seja a ordem das linhas estão trocadas.
Coloque o setContenType como a primeira linha desse seu código.
Obrigada cu_ringa pela sugestão… porém eu já havia feito isso, eu troquei aki realmente as ordens sem querer… :oops: não funciona tbm…
Deixa eu ver se vc pode me ajudar, vou explicar melhor…
Eu tenho uma classe Main, onde eu starto o tomcat e chamo o swf referente ao menu… todas as requisições passam por um Filtro o qual verifica se esse arquivo existe no path do projeto ou não… os arquivos q não existem ele chama uma dll a qual busca no banco e me devolve o conteúdo do arquivo codificado em Base64, este por sua vez apssa para a minha classe JNI onde eu descodifico e tenho de executá-lo… é justamente esse conteúdo do miolo descodificado o qual eu não consigo executar…
Eu preciso ler um conteúdo binário, que não existe um arquivo físico, é um conteúdo que eu recebo no Servlet e eu apenas mudo o mime type dele para arquivo flash e carrego na tela.
Eu já testei criar o arquivo fisicamente depois de decodificado de Base64 para binário e este está funcionando, oq não funciona é carregar este conteúdo na tela… já tentei utilizar o OutputStream, DataOutputStream, BufferedOutputStream e o FileOutputStream (como teste), porém nenhum deles funcionou, não sei se eu estou fazendo alguma besteira…
ficou da seguinte forma… corrigindo o código anteriormente postado:
public void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
arquivo = (String) request.getAttribute("fileCode");
//Conteúdo em Base64 adquirido através de uma dll
content = new MySharedLibrary().carregaArquivo3(arquivo);
content = content.replaceAll("@", "\n").trim();
try
{
//Decodificação de Base64 para Binário
bytes = base.decode(content);
if(bytes != null)
{
response.setContentType("application/x-shockwave-flash");
OutputStream fos = response.getOutputStream();
fos.write(bytes);
fos.flush();
fos.close();
}
}
catch(Exception ex)
{
ex.printStackTrace();
log(ex.getMessage());
}
}
Alguém tem alguma sugestão? Preciso entregar isso hj no trabalho e nenhuma das alternativas não deu certo…