Foros del Web » Programación para mayores de 30 ;) » Java »

response.setContentType(??????)

Estas en el tema de response.setContentType(??????) en el foro de Java en Foros del Web. Hola os explico lo que tengo a ver si me podeis ayudar. El objetivo es poder insertar y recuperar datos de tipo bfile en oracle ...
  #1 (permalink)  
Antiguo 07/07/2005, 13:47
 
Fecha de Ingreso: mayo-2005
Mensajes: 294
Antigüedad: 19 años
Puntos: 0
response.setContentType(??????)

Hola os explico lo que tengo a ver si me podeis ayudar.
El objetivo es poder insertar y recuperar datos de tipo bfile en oracle 9i desde java. Lo que tengo es un procedimiento almacendao que lo almacena:

create or replace procedure agregaFichero(directorio IN varchar2, fichero IN varchar2, identificador IN varchar2) as
f_lob bfile;
BEGIN
f_lob:=bfilename(directorio,fichero);
INSERT INTO T_fichero VALUES(identificador,f_lob);
END;

vale la tabla T_fichero es muy simple:create table T_fichero(
id varchar2(20),
fich bfile);

Tengo una clase java que lo unico que hace es ejecutar el procedimiento almacenado y no me da ningun problema
Luego tengo en java un servlet que lo que hace es recoger lo que hay en el fichero:

package pruebas_de_la_conexion;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;


public class VerFichero extends HttpServlet {
private static final String CONTENT_TYPE = "text/plain";
private String querySQL3="SELECT fich FROM T_fichero ";

public void init() throws ServletException {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e){ System.out.println("No puedo cargar el driver JDBC de la BD");}


}


//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@loc alhost:1521:SERVAUTO","system","sara_system");
java.sql.Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(querySQL3);
response.setHeader("Accept-ranges","byttes");

if(rs.next()){
java.io.OutputStream os= response.getOutputStream();
int size;
byte[] buffer = new byte[1024];
java.io.InputStream is= rs.getBinaryStream(1);
while((size = is.read(buffer))!=-1){
os.write(buffer,0,size);
os.flush();
}
os.close();
is.close();

}

}
catch (SQLException ex) {
System.out.println("Message: " + ex.getMessage());
}
catch(Exception e){e.printStackTrace();}
}

}

Y al ejecutar esta clase me dice:
"Tipo de columna no valido" y no me muestra nada. Yo supongoque sera que teng que cambiar el tipo de cabecera mime pero no se que poner. A ver si podeis ayudarme es muy importante.
Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:31.