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

XQUERY/SGBD XML Discussion :

Probléme de connexion à la base


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut Probléme de connexion à la base
    Salut tout le monde
    je travaille depuis peu sur le langage XML, je voudrais établir une connexion à ma base, j'ai les lignes de codes nécessaire mais j'obtiens des erreurs au niveau de la méthode registerDatabase() et getCollection().
    L'erreur pour la méthode registerDatabase() est i"Cannot find symbol" et symbol "method registerDatabase(Webconnection.DatabaseManager" nottant que Webconnction est mon package.
    SVP y a t il quelqu'un qui pourra m'aider j'ai besoin d'une solution le plus rapide possible.
    Merci d'avance à être intéressé par mon problème.

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut

    personne n'a de solution

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Hello,
    Ben tu ne montres ni tes erreurs (exceptions), ni ton code, donc on risque pas de pouvoir trouver.
    Sinon le code de la doc officiel, c'est :
    http://exist.sourceforge.net/devguide_xmldb.html

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Voilà mon code:

    package WebConnection;
    import java.io.File;
    import java.lang.String;
    import org.xmldb.api.base.*;
    import org.xmldb.api.modules.*;
    import org.xmldb.api.*;
    import org.xmldb.api.DatabaseManager;
    import org.xmldb.api.base.Collection;
    public class connectionBD {
    private static Object DatabaseManager;
    public static void main(String args[]) throws Exception {
    String driver = "org.exist.xmldb.DatabaseImpl";
    //déterminer la classe de driver utilisée
    //Pour se connecter à une base de données il est essentiel de charger dans un premier temps le
    //pilote de la base de données à laquelle on désire se connecter grâce à un appel au
    // DriverManager (gestionnaire de pilotes) : Class.forName("nom.de.la.classe");
    // Cette instruction charge le pilote et crée une instance de cette classe.
    Class cl = Class.forName(driver);

    Database data = (WebConnection.Database) cl.newInstance();
    DatabaseManager.registerDatabase(data);
    //Accès à la collection
    Collection col = DatabaseManager.getCollection("xmldb:exist://localhost:8080/exist/xmlrpc/webhouseDataBase" );
    //Appel au service permettant d’exécuter des requêtes avec XPath
    XPathQueryService service =
    (XPathQueryService) col.getService("XPathQueryService", "1.0");
    service.setProperty("indent", "yes");
    //Description de la requête
    ResourceSet result = service.query("//*[adresseIp()='adresseIp']");
    ResourceIterator i = result.getIterator();
    while(i.hasMoreResources()) {
    Resource r = i.nextResource();
    System.out.println((String)r.getContent());
    }

    }

    }

    L'erreur au niveau des lignes de registerDatabase et getCollection.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Quelle erreur? A la compilation? A l'exécution? Quel est son détail?

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    L'erreur en tapant le code avant mm l'exécution ou la compilation, les deux méthodes sont soulignées en rouge. En mettant la souris, il m'affiche Cannot Find Symbol.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Sisi, c'est de la compilation.
    Ton code est sans doute dans un IDE qui te le compile à la volée.
    Le soucis vient sans doute cette ligne là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Database data = (WebConnection.Database) cl.newInstance();
    Qui devrait être plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.xmldb.api.base.Database data = (org.xmldb.api.base.Database) cl.newInstance();
    Tu peux aussi ajouter un import en début de fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.xmldb.api.base.Database;
    et mettre plus loin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Database data = (Database)cl.newInstance();
    Ton package perso "WebConnection" semble contenir une classe ou interface nommée "Database" mais elle n'a rien à voir avec celle qu'attend le DatabaseManager d'eXist-db qui a sa propre interface "Database".

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    1000 Merci Morbo, ça marche bien maintenant.
    Mais est ce que je peux te poser une autre question?

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Ben écris un nouveau message pour que tout le monde en profite.

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    L'exécution de ce code m'affiche:
    XML: DB Exception occured org.xmldb.api.base.XMLDBException: HTTP server returned unexpected status: Not Found

    Je veux noter que la base eXist travaille avec le port 8080 puisque je suis en train de travailler chez moi je peux pas l'ouvrir il est utilisé mais dans le laboratoire elle marche bien vu que nous somme connectés via un proxy.
    Moi je ne comprend pas bien le réseau mais est ce que c é nécessaire que j'établis un proxy chez pour la connexion et libérer le port 8080 pour la connexion à la base eXist.

  11. #11
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Bonjour,
    voilà je travaille depuis peu sur xml et la j'ai un projet d'une appli 3-tiers, un serveur Tomcat j2e et une base de données xml eXist et je ne connais pas du tout comment faire pour communiquer mon serveur avec la base de données pour exécuter mes requetes xquery correspondantes, si vous pouvez m'aider svp ou si vous avez un bon tutoriel... Merci beaucoup d'avance...


    ps: c'est très urgent je vous remercie encore une fois d'avance pour votre aide...

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Bonjour pour la connexion à la base de données eXist et l'exécution de requête ce tutoriel vous aide bien: http://www.loria.fr/~abelaid/Enseign...DXml-eXist.pdf
    Bon courage

  13. #13
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    c'est très gentil de votre part merciii beaucoup, ce que je dois faire au juste c'est de me connecter à la base et récupérer des données à partir de ma collection vous n'avez pas un tutoriel à ce sujet?....
    Comment dois-je envoyer les données du client vers le serveur d'application pour après me connecter a la base de données Merci beaucoup pour votre aide...

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Il y a pourtant des exemples qui font exactement ça dans les 2 liens qu'on t'a donné.

  15. #15
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    bonjour,

    je n'ai eu qu'un seul lien monsieur...

    dites moi svp est ce que je dois utiliser la meme chose pour les servlets .???


    voila j'ai essayé d'exécuter ce code la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    import org.xmldb.api.base.*;
    import org.xmldb.api.modules.*;
    import org.xmldb.api.*;
    public class QueryExample {
    public static void main(String args[]) throws Exception {
    String driver = "org.exist.xmldb.DatabaseImpl";
    //déterminer la classe de driver utilisée
    //Pour se connecter à une base de données il est essentiel de charger dans un premier temps le
    //pilote de la base de données à laquelle on désire se connecter grâce à un appel au
    // DriverManager (gestionnaire de pilotes) : Class.forName("nom.de.la.classe");
    // Cette instruction charge le pilote et crée une instance de cette classe.
    Class cl = Class.forName(driver);
    Database database = (Database)cl.newInstance();
    DatabaseManager.registerDatabase(database);
    //Accès à la collection
    Collection col = DatabaseManager.getCollection(
    "xmldb:exist://localhost:8080/exist/xmlrpc/db/hachette" );
    //Appel au service permettant d’exécuter des requêtes avec XPath
    XPathQueryService service =
    (XPathQueryService) col.getService("XPathQueryService", "1.0");
    service.setProperty("indent", "yes");
    //Description de la requête
    ResourceSet result = service.query("//*[name()='nom_auteur']");
    ResourceIterator i = result.getIterator();
    while(i.hasMoreResources()) {
    Resource r = i.nextResource();
    System.out.println((String)r.getContent());
    }
    }
    }
    mais j'ai cette exception la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "main" java.lang.NullPointerException
    	at QueryExample.main(QueryExample.java:18)
    je sais pas comment l'exception de collection est parti mais bon je crois que c'était du aux jars qui n'étaient pas tous chargés... AIdezzz moi svvvvvvppp

  16. #16
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Il est plus sage de tester la valeur retournée par le .getCollection, car elle peut-être null, si la collection est inexistante. Cf javadoc.

    Ton exception vient probablement de là.

  17. #17
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    j'ai modifié les parametres de getColelction en ajoutant le mot de passe et le login et la ça ne retourne pas null mais une exception sur cette instruction la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResourceSet result = service.query("//*[name()='nom_auteur']");
    je comprends pas pourquoi...

  18. #18
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Quelle exception ?
    Donne le détail sinon on peut pas t'aider...

  19. #19
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Donne le détail sinon on peut pas t'aider...
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    import java.io.File;
    import java.lang.String;
    import org.xmldb.api.base.*;
    import org.xmldb.api.modules.*;
    import org.xmldb.api.*;
    import org.xmldb.api.DatabaseManager;
    import org.xmldb.api.base.Collection;
    public class QueryExample {
    private static Object DatabaseManager;
    public static void main(String args[]) throws Exception {
    String driver = "org.exist.xmldb.DatabaseImpl";
    //déterminer la classe de driver utilisée
    //Pour se connecter à une base de données il est essentiel de charger dans un premier temps le
    //pilote de la base de données à laquelle on désire se connecter grâce à un appel au
    // DriverManager (gestionnaire de pilotes) : Class.forName("nom.de.la.classe");
    // Cette instruction charge le pilote et crée une instance de cette classe.
    Class cl = Class.forName(driver);
     
    Database data = (Database) cl.newInstance();
    ((org.xmldb.api.DatabaseManager) DatabaseManager).registerDatabase(data);
    //Accès à la collection
    Collection col = ((org.xmldb.api.DatabaseManager) DatabaseManager).getCollection("xmldb:exist://localhost:8080/exist/xmlrpc/hachette", "zemzoum89", "admin" );
    //Appel au service permettant d’exécuter des requêtes avec XPath
    if (col == null)
    	System.out.println("Le service pointe sur null");
    else{
    XPathQueryService service =
    (XPathQueryService) col.getService("XPathQueryService", "1.0");
    service.setProperty("indent", "yes");
    //Description de la requête
    ResourceSet result = service.query("//*[name()='nom_auteur']");
    ResourceIterator i = result.getIterator();
    while(i.hasMoreResources()) {
    Resource r = i.nextResource();
    System.out.println((String)r.getContent());
    }
    }
    }
    }
    et voici l'exception que j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Exception in thread "main" org.xmldb.api.base.XMLDBException: HTTP server returned unexpected status: Unauthorized
    	at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:113)
    	at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:71)
    	at QueryExample.main(QueryExample.java:32)
    Caused by: org.apache.xmlrpc.client.XmlRpcHttpTransportException: HTTP server returned unexpected status: Unauthorized
    	at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.getInputStream(XmlRpcSunHttpTransport.java:94)
    	at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:152)
    	at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:115)
    	at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
    	at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
    	at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
    	at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
    	at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)
    	at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:99)
    	... 2 more
    [B@cf40f5org.apache.xmlrpc.client.XmlRpcHttpTransportException: HTTP server returned unexpected status: Unauthorized
    	at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.getInputStream(XmlRpcSunHttpTransport.java:94)
    	at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:152)
    	at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:115)
    	at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
    	at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
    	at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
    	at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
    	at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)
    	at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:99)
    	at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:71)
    	at QueryExample.main(QueryExample.java:32)
    Merci beaucoup de m'aider

  20. #20
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HTTP server returned unexpected status: Unauthorized
    Alors à ton avis d'où vient le problème?

Discussions similaires

  1. [VB.NET] Problème de connexion à la base avec VB.net
    Par Bqda dans le forum Windows Forms
    Réponses: 13
    Dernier message: 02/04/2006, 13h56
  2. Réponses: 4
    Dernier message: 24/02/2006, 10h48
  3. Réponses: 2
    Dernier message: 18/01/2006, 11h44
  4. Réponses: 1
    Dernier message: 28/04/2005, 18h02
  5. Problème de connexion à une base access
    Par caco19 dans le forum ASP
    Réponses: 4
    Dernier message: 13/08/2004, 16h19

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