IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

pb d'execution de servlet avec apache jserv + oracle


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut pb d'execution de servlet avec apache jserv + oracle
    Bonjour,

    j'ai un soft en java qui a pour role d'instaurer des fichiers xml sous format blob dans une base oracle.
    Mon pb est quand j'essaye de lire ce blob xml de la base pour verifer qu'il a ete bien sauvegarde je trouve cette erreur: "An invalid character was found in text content. Error processing resource "des que le champs details quantients deux ou trois paragraphes.

    mon fichier xml a la structure suivante
    <latestnews>
    <newshead>
    <xmldate>... </xmldate>
    <topstory>...</topstory>
    <details>...</details>
    </newshead>
    </latestnews>
    le champ details contient des informations sportives. et l'errer se produit quand jemet plus que deux paragraphes !!

    je lis ce blob a partir de la base de donne oracle avec le soft suivant:

    Citation:
    try
    {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con = DriverManager.getConnection(
    "jdbc:oracle:thin:@IpAddress:1521:orcl1",
    "user","pwd");

    /*File monImagel = new File("E:\\JDevloper\\jdev\\mywork\\JcWebAppli\\JcDataBase\\public_html/events.xml");
    FileOutputStream ostreamImage = new FileOutputStream(monImagel);*/

    try
    {
    PreparedStatement pss = con.prepareStatement("select xmlfile from latestevents where id_event=?");

    try
    {
    pss.setInt(1,3);
    ResultSet rss = pss.executeQuery();
    rss.next();

    Blob blob = rss.getBlob("xmlfile");
    try
    {
    InputStream istreamImagel = blob.getBinaryStream();
    //response.reset();
    byte[] buffer = new byte[1024];
    int length = 0;

    while(((length = istreamImagel.read(buffer)) != -1))
    {
    //ostreamImage.write(buffer, 0, length);
    response.getOutputStream().write(buffer,0,length);
    }
    response.flushBuffer();
    }
    catch(Exception e)
    {
    out.println("ERROR1: "+e);
    }
    finally
    {
    rss.close();
    }
    }
    catch(Exception e)
    {
    out.println("ERROR2: "+e);
    }
    finally
    {
    pss.close();
    }
    }
    catch(Exception e)
    {
    out.println("ERROR3: "+e);
    }
    finally
    {
    //ostreamImage.close();
    }
    }
    catch(ClassNotFoundException e)
    {
    out.println("<p>Could not load database driver:"
    +e.getMessage()+"</p>");
    }
    catch(SQLException e)
    {
    out.println("<p>SQLException caught:"
    +e.getMessage()+"</p>");
    }
    finally
    {//close connection no matter what
    try
    {
    if(con!=null)
    {
    con.close();
    }
    }catch(SQLException ignored){}
    }



    en fait j'arrive a ouvrir le fichier xml avec IE !!
    et j'ai remarque qu'en travaillant avec Oracle Jdeveloper tout marche tres bien !!
    par contre contre quand je compile mon code java, et je met le .class dans Apache Jserv ca marche pour certains fichiers xml et pas pour d'autres !!
    et en plus dans la base de donnee oracle j'ai remarque qu'il me sauve le fichier xml dans le champ image et le .jpg dans le champ xmlfile de la table c'est a dire qu'il inverse les deux champs !! et cela n'arrive pas avec Jdeveloper !

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    Bon j'ai change le code comme ceci
    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;


    try
    {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.189:1521:"+HString,User,Pwd);

    if(bVal.compareTo("true")==0)
    {
    int IdIndex = 0;
    int IdIndex2 = 0;
    int LastIndex = 1;

    /**
    * Get the last id_event from the latestevents table
    */
    String stmtString = new String("select id_event from latestevents");
    /**
    * start getting the data from the table
    */
    stmt = con.createStatement();
    rs = stmt.executeQuery(stmtString);

    while(rs.next())
    {
    LastIndex++;
    }

    out.println(LastIndex);


    File jclastevent = new File("E:\\oracle\\ora92\\Apache\\Jserv\\servlets/"+Xmlpath); // latestevents.xml
    FileInputStream istreamxml = new FileInputStream(jclastevent);

    File eventimg1 = new File("E:\\oracle\\ora92\\Apache\\Jserv\\servlets/"+IPath);
    FileInputStream istreamImage1 = new FileInputStream(eventimg1);

    for(int j=1;j<=LastIndex;j++)
    {


    try
    {
    IdIndex = LastIndex*j - 10*(j-1)-(LastIndex-9)*(j-1);
    PreparedStatement ps = con.prepareStatement("update latestevents set id_event=? where id_event="+IdIndex);
    try
    {
    out.println("IdIndex: "+(IdIndex+1));
    ps.setInt(1,IdIndex+1);
    ps.executeUpdate();
    }catch(Exception exc){out.println(exc.getMessage());}
    finally{ps.close();}
    out.println("Step1");
    }catch(Exception exc){out.println(exc.getMessage());}

    }


    PreparedStatement pStmt = con.prepareStatement("insert into latestevents(id_event, eventdate,xmlfile, image)" +
    "values(?,To_Date(?, 'DD-MM-YYYY'), ?, ?)");

    try
    {
    pStmt.setInt(1,1);
    pStmt.setString(2,ODate);
    pStmt.setBinaryStream(3,istreamxml, (int) jclastevent.length());
    pStmt.setBinaryStream(4,istreamImage1, (int) eventimg1.length());
    pStmt.executeUpdate();
    }
    catch(Exception exc)
    {
    out.println(exc.getMessage());
    checkconnection = exc.getMessage();
    }
    finally{pStmt.close();
    istreamxml.close();
    istreamImage1.close();}
    }



    }

    catch(ClassNotFoundException e)
    {
    checkconnection = "Could not load database driver:"
    +e.getMessage();
    out.println("Could not load database driver:"
    +e.getMessage());
    }
    catch(SQLException e)
    {
    checkconnection = "SQLException: "+e.getMessage();
    }
    finally
    {
    /**
    * close connection no matter what
    **/
    try
    {
    if(con!=null)
    {
    con.close();
    }
    }catch(SQLException ignored){}

    }
    je "debuge" avec Jdeveloper ca marche.
    je compile avec cmd.exe et je met le .class dans Apache Jserv ca marche pour quelques fichiers xml et pas pour d'autre !! , l'image n'est pas sauvegardee dans la base et en plus j'ai l'erreur suivante:
    SQLException: Io exception: Connection reset by peer: socket write error
    la table latestevents a la forme suivante
    create table latestevents(
    id_event NUMBER(5) PRIMARY KEY,
    eventdate DATE NOT NULL,
    xmlfile BLOB NOT NULL,
    image BLOB)
    ;
    cela fait trois jour que je cherche !!

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    qu'est ce qui differe entre Apache Jserv et Oracle Jdeveloper pour que le meme soft marche avec Jdeveloper et ne marche pas avec Apache !!

Discussions similaires

  1. execution des servlets avec tomcat
    Par legide dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 20/07/2007, 09h09
  2. port 80 avec Apache
    Par SuperDog dans le forum Apache
    Réponses: 5
    Dernier message: 08/07/2004, 17h28
  3. Réponses: 6
    Dernier message: 13/04/2004, 12h31
  4. Pb d'execution de requete avec un script php
    Par ythierrin dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/08/2003, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo