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

Weblogic Java Discussion :

Weblogic 9.2 | NoSuchObjectException - Bean non trouvé


Sujet :

Weblogic Java

  1. #1
    Membre régulier Avatar de Resyek
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 104
    Points
    104
    Par défaut Weblogic 9.2 | NoSuchObjectException - Bean non trouvé
    Bonjour,

    Je suis actuellement sous Weblogic 9.2, Oracle 9.2, et je tente d'utiliser une appli J2EE développée sous WSAD (IBM).

    Je suis bloqué depuis deux jours sur l'erreur suivante.
    Voici ce que je fais :
    1. Je crée une nouvelle entrée dans la BDD (interfaceHome.create(...) )
    2. J'instancie un bean basé sur cette l'interface Locale retournée par la méthode create().

    Mon constructeur se présente comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	public DLBean(Thp20Local dLocal) throws Exception {
     
    		Thp20Key thp20Key = (Thp20Key)dLocal.getPrimaryKey();
    		this.setCol1(thp20Key.col1);
    		this.setCol2(thp20Key.col2);
    		setCol3(dLocal.getCol3());
    Ma clé primaire est composée de deux éléments (col1 et col2).

    Lors de l'appel du constructeur, l'application se plante à la ligne 4 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nested exception is: javax.ejb.NoSuchEntityException: [EJB:010140]Bean with primary key: 'com.sopra.timbackint.litige.om.ejb.Thp20Key@e9bb0064' not found.
    javax.ejb.EJBException: nested exception is: javax.ejb.NoSuchObjectLocalException: [EJB:010140]Bean with primary key: 'com.sopra.timbackint.litige.om.ejb.Thp20Key@e9bb0064' not found.: javax.ejb.NoSuchEntityException: [EJB:010140]Bean with primary key: 'com.sopra.timbackint.litige.om.ejb.Thp20Key@e9bb0064' not found.
    	at com.sopra.timbackint.litige.om.ejb.Thp20_slrrao__WebLogic_CMP_RDBMS.__WL_loadGroup0(Thp20_slrrao__WebLogic_CMP_RDBMS.java:2989)
    	at com.sopra.timbackint.litige.om.ejb.Thp20_slrrao__WebLogic_CMP_RDBMS.getCtdoss(Thp20_slrrao__WebLogic_CMP_RDBMS.java:517)
    	at com.sopra.timbackint.litige.om.ejb.Thp20_slrrao_ELOImpl.getCtdoss(Thp20_slrrao_ELOImpl.java:1305)
    Ma table ici se nomme Thp20, la classe PKey "Thp20Key" et la méthode getCol3() correspond à "getCtdoss()".

    Le problème le plus ennuyeux, c'est que je n'ai cette erreur que lorsque l'un des attributs de la clé primaire à une longueur plus petite que la largeur de la colonne correspondante : c'est comme s'il n'était plus capable d'identifier la ligne concernée...

    Serait-ce une histoire de caractère "blancs" de remplissage ? J'ai regardé : ma donnée est bien enregistrée en table avec des espaces à la suite, par contre, dans la clé primaire, les éléments n'ont pas d'-espaces- à la suite.

    Quelqu'un aurait-il une piste pour moi ? J'ai cherché un peu partout (forums, site bea, google...) mais rien ne semble approcher mon problème.

    Merci d'avance ! (et désolé pour la longueur !)
    Keaton me disait toujours: "Je ne crois pas en Dieu, mais j'ai peur de lui."
    Moi, je crois en Dieu mais j'ai peur de Keyser Soze...
    [Verbal Kint - The Usual Suspects]

  2. #2
    Membre régulier Avatar de Resyek
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 104
    Points
    104
    Par défaut Solution
    Je me réponds à moi-même, pour indiquer la solution.

    Elle m'a été fournie par quelqu'un de plus expert que moi, qui a eu la bonne idée de consulter le code de déploiement de WebLogic.

    Le concept est un peu "sioux" : pour résumer, après un ejbCreate, WebLogic renvoie la PrimaryKey de la table, et non l'interface locale. Si un accès en lecture est fait sur cette interface, il fait de lui-même un findByPrimaryKey, pour récupérer l'élément.

    Seulement, dans le cas où l'un des attributs de la clé primaire est plus petit que la largeur de la colonne, et que la BDD est Oracle, Weblogic n'a pas la "présence d'esprit", de rajouter des "espaces" pour compléter l'attribut. Et donc, il ne trouve pas la ligne !

    Solution 1 : Forcer l'insertion de blanc lors de la création (il semblerait que les blancs 'insérés à la main', et ceux rajoutés par Oracle n'ait pas le même "poids")

    Solution 2 : Faire "à la main", un appel du findByPrimaryKey, après la création, en ayant "paddés" les champs au bon format.

    Merci pour ceux qui avait pris le temps de me lire et de réfléchir :-)
    Keaton me disait toujours: "Je ne crois pas en Dieu, mais j'ai peur de lui."
    Moi, je crois en Dieu mais j'ai peur de Keyser Soze...
    [Verbal Kint - The Usual Suspects]

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/05/2014, 18h01
  2. pb avec un formulaire : bean non trouvé
    Par gloglo dans le forum Struts 1
    Réponses: 1
    Dernier message: 18/04/2007, 16h57
  3. COleDispatchDriver et Afx.h -> LPCSTR non trouvé
    Par Bayard dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/09/2004, 08h42
  4. [Debutant][Install][VS]erreur sur fichier non trouvé.
    Par silvermoon dans le forum DirectX
    Réponses: 4
    Dernier message: 16/07/2004, 20h59
  5. [Struts][JSP] Sous-propriété de bean non rapatriée
    Par cowa dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/05/2004, 10h25

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