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

CORBA Discussion :

sequence et exception


Sujet :

CORBA

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 73
    Points
    73
    Par défaut sequence et exception
    Bonjour,
    J’écris un programme java qui implement CORBA.
    J’utilise des sequence du coté serveur tout se passe bien il remplie bien la sequence et la retourne mais du coté client lors de l appel de la fonction une exception est lancée.
    L’exception est : org.omg.CORBA.UNKNOWN minor code 0

    Mon code du coté client est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sJoueur[] lesJoueurs;
       try {
       lesJoueurs = objet.getJoueur();
       for&#40;int i =0; i < lesJoueurs.length; i++&#41;
                System.out.println&#40;lesJoueurs&#91;i&#93;.NumJou + "  " + lesJoueurs&#91;i&#93;.NomJou&#41;;
       &#125; catch&#40;ObjetExemplePackage.PasDeJoueur  pdf&#41; &#123;
           System.out.println&#40;"Pas de films à l'affiche"&#41;;
        &#125;
        catch&#40;org.omg.CORBA.UNKNOWN un&#41;
        &#123;
          System.out.println&#40;"CORBA.UNKNOWN&#58; "+ un.toString&#40;&#41;&#41;;
        &#125;
    et le code de la fonction getjoueur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public sJoueur&#91;&#93; getJoueur&#40;&#41; &#123; 
        
        ResultSet rs;
        int cpt = 0;
        int nbr = 0;
        sJoueur&#91;&#93; lesJoueurs = new sJoueur&#91;16&#93;; 
                ...  // ca va chercher les joueurs dans une BD oracle
                ... // comme je l ai dit ca se passe bien
        return lesJoueurs;
      &#125;;
    dans l'idl j ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        struct sJoueur
        &#123;
         long Num;
         string NomJou;
         ...
        &#125;
        typedef sequence<sJoueur> LesJoueurs;
        LesJoueurs getJoueur&#40;&#41; raises &#40;PasDeJoueur&#41;;
    si qq un pouvait m'aider
    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut idem
    Tu es passé au debugger ?
    Ca plante avant même de rentrer dans ta méthode, pendant ou au retour ?
    Ton serveur trouve bien l'OAD ?

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 73
    Points
    73
    Par défaut
    désolé de repondre si tard mais c parce que je travaillais sur d'autre programme.
    le probleme est que j'utilise oracle Jdevloper 10g qui cause deja pas mal de probleme pour la compilation de l'IDL, alors l'utilisation du debugger... hé je suis aussi très limité dans le temps et je connais pas tres bien jdev.
    Enfin sinon je peux te dire que c'est au retour de la fonction que l'exception se produit et elle se produit du coté client aucune exception du coté serveur.
    merci de ton aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Ton IDL n'a pas changé entre temps.
    Les fichiers générés par IDLToJava ont-il été générés à partir du même fichier IDL ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Euh, non en réfléchissant, si les prototypes client et serveurs avaient changé, tu n'aurais pas eu accès à la méthode du serveur, il y aurait eu un CORBA BAD COMMAND.
    Si tu récupères l'exception "org.omg.CORBA.UNKNOWN minor code 0 ", cela ne veut pas forcément dire que le process du serveur s'est déroulé correctement.
    Pour t'en assurer, fait un system.out.println ("message fin") juste avant la ligne :
    Je pense plutôt que c'est une erreur côté serveur car si tout s'était bien passé, tu aurais peut-être une exception Java mais pas une CORBA.

  6. #6
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 73
    Points
    73
    Par défaut
    ben j ai fais un affichage des données que je vais chercher dans une base de donnée et tout se passe bien j'ai aussi fais system.out.println("...");
    avant le return et ca s'exécute bien.
    Mais l'idée que tu donnes avec l'IDL me semble pas trop mauvais car en faite, j'avais un IDL exemple que j ai modifier.

    deja je c pas si c vraiment normal avec jdev mais quand je compile l'IDL je doit relancer jdev pour que les modification s'effectue bien.
    puis la classe sJoueur qui est le type de la séquence (généré automatiquement lors de la compilation de l'IDL) n'est pas chargé je doit suprimé l'ancienne et ajouté la nouvelle. Ca non plus je sais pas trop si c normal.
    merci aussi pour ton aide

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Si l'IDL a changé et que client et serveurs n'aient pas la même image de l'IDL, ça peut être une bonne raison pour que cela ne marche pas.
    Je ne connais pas JDev par contre, je ne pourrai pas t'aider.
    Essaie de supprimer tous les fichiers générés à partir de l'IDL et refait les idltojava et teste pour voir si tu as toujours l'erreur.
    Tu utilises quoi comme CORBA ?
    Il n'y a pas de problème de Firewall et passer par un gatekeeper ?

  8. #8
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 73
    Points
    73
    Par défaut
    merci à toi ep31 le probleme venait bien de là.
    il faut supprimer tout les fichiers generés par la compilation de l'IDL.
    vraimant pas terrible le jdev
    à ne pas utilisé avec corba

    encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. programmation corba: le type "sequence"
    Par Kali dans le forum CORBA
    Réponses: 4
    Dernier message: 28/08/2005, 16h09
  2. Réponses: 3
    Dernier message: 01/11/2002, 14h30
  3. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  4. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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