Problemas com upload em banco no lado do servidor

5 respostas
phmjunior

Seguinte galera estou com um problema chato aqui:

este e o meu coódigo de upload em banco oracle, funciona blz aqui na minha máquina, só q quando jogo para o servidor ele retorna o seguinte erro:

alguém pode me ajudar???

org.apache.jasper.JasperException: Exception in JSP: /adm/pag/publica_arquivos/sgp/enviar.jsp:19

16:          Connection con = DriverManager.getConnection(url,usuario,senha);

17:

18:          File arquivo = new File(imagem);

19:          FileInputStream inputStream = new FileInputStream(arquivo);

20:          PreparedStatement ps = con.prepareStatement(INSERT INTO documentos_treap (nome, imagem, tipo_doc, texto, numero,setor ) values(?,?,?,?,?,?));

21:          ps.setString			(1, arquivo.getName());

22: 		 ps.setBinaryStream		(2, inputStream,(int) arquivo.length());
Stacktrace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:361)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.io.FileNotFoundException: C:\Documents and Settings\Peter Jr\Meus documentos\mat_fundamental.pdf (No such file or directory)

java.io.FileInputStream.open(Native Method)

java.io.FileInputStream.<init>(FileInputStream.java:106)

org.apache.jsp.adm.pag.publica_005farquivos.sgp.enviar_jsp._jspService(enviar_jsp.java:147)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
&lt;%
String imagem = request.getParameter("imagem");
String cod_doc = request.getParameter("cod_doc");
String texto = request.getParameter("texto");
String setor = request.getParameter("setor");
String numero = request.getParameter("numero");

%&gt;
&lt;%
if(imagem != null){

         Class.forName("oracle.jdbc.driver.OracleDriver");
         String url = "jdbc:oracle:thin:@meuhost:1521:sid";
         Connection con = DriverManager.getConnection(url,usuario,senha);

         File arquivo = new File(imagem);
         FileInputStream inputStream = new FileInputStream(arquivo);
         PreparedStatement ps = con.prepareStatement("INSERT INTO documentos_treap (nome, imagem, tipo_doc, texto, numero,setor ) values(?,?,?,?,?,?)");
         ps.setString			(1, arquivo.getName());
		 ps.setBinaryStream		(2, inputStream,(int) arquivo.length());
		 ps.setString			(3, cod_doc);
		 ps.setString			(4, texto);
		 ps.setString			(5, numero);
		 ps.setString			(6, setor);
         int ret = ps.executeUpdate();

         if ( ret == 1 )
            response.sendRedirect(response.encodeRedirectURL("../../redireciona.jsp?pagina=publica_arquivos/sgp/adm.jsp&cod_sis=18&cod_usr="+cod_usr+"&rastro=INCLUI_ARQUIVO_SGP&msn=Arquivo inserido com sucesso!"));
         else
            response.sendRedirect(response.encodeRedirectURL("enviar.jsp?cod_sis=18&cod_usr="+cod_usr+"&msn=Problema ao inserir arquivo!"));

         con.close();
         ps.close();
 }
      %&gt;

agradeço se houver alguém ai disposto a da aquela força

5 Respostas

oddy.silva

Ele não tá encontrando o seguinte arquivo:

C:\Documents and Settings\Peter Jr\Meus documentos\mat_fundamental.pdf

Dá uma olhada no seu if/else (linhas 27 a 30): não tá faltando chaves {}?

if ( ret == 1 )  {

    response.sendRedirect(response.encodeRedirectURL("../../redireciona.jsp?pagina=publica_arquivos/sgp/adm.jsp&cod_sis=18&cod_usr="+cod_usr+"&rastro=INCLUI_ARQUIVO_SGP&msn=Arquivo inserido com sucesso!"));  
  } else {
    
     response.sendRedirect(response.encodeRedirectURL("enviar.jsp?cod_sis=18&cod_usr="+cod_usr+"&msn=Problema ao inserir arquivo!"));  
}

con.close();
ps.close();

Talvez ele não esteja tratando a parte do “e se der errado?”

Aproveita e dá uma olhada no caminho do arquivo também, pra ver se tá tudo belezinha.

phmjunior

pois é oddy.silva,

o erro acontece no lado do servidor.
p. ex.: na minha máquina (localhost), ele encontra esse caminho mas quando eu faço o upload da aplicação para o servidor de produção (araguari.tre-ap.gov.br) ele falha.

obs.: tudo isso funciona na minha máquina com ou sem as chaves “{}” e retorna o erro assim mesmo. tirei as chaves para ver o erro root q causava essa Exception.

alguém mais pode ajudar???

phmjunior

só uma observação:

meu localhost é windows xp e o servidor é linux redhat

oddy.silva

Fala rapaz, tudo beleza?
Talvez esteja acontecendo o seguinte:

Quando vai fazer o upload pro servidor, o servidor não encontra o caminho especificado “C:…” porque no Linux ele não vai reconhecer
esse padrão de caminho, que é um padrão do Windows. Ele só vai conseguir gravar no servidor se você colocar o caminho em algo do tipo:
“/home/seuUsuario/suaPasta”, que é o padrão Unix. O lance aí pode ser apenas o caminho do diretório mesmo. Veja se não é isso mesmo.

phmjunior

grande oddy.silva ,

pois é meu amigo o problema é exatamente isso mas não sei como resolver. deve ter outra forma de chamar o arquivo q esta certo.
vou estudar outra forma, acho q vou fazer indo em um diretório do linux até resolver como mandar direto p/ o banco.

mas valeu a mensagem

Criado 20 de outubro de 2009
Ultima resposta 21 de out. de 2009
Respostas 5
Participantes 2