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

Struts 1 Java Discussion :

[Exception] Nested exception pour les EJB


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut [Exception] Nested exception pour les EJB
    Bonjour, bonjour,

    Bon alors voila, j'ai une action qui appelle cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    livraisonDelegate.createComposant(composantDto);
    Cette fonction permet via les EJB de créer une entité Composant :

    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
      public void createComposant(ComposantDto composantDto) throws EJBException {
     
          if (composantDto != null) {
            try {
              Composant composant = composantHome.create();
              setComposantFromComposantDto(composant, composantDto);
    
            }
            catch (Exception e) {
              throw new EJBException(e.getMessage());
            }
          }
          else{System.out.println("create qui foire");// Message d'erreur
          }
        }
    Dans cette fonction, est appellée une autre fonction (en gras) qui sert à remplir les attributs de l'entité :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    private void setComposantFromComposantDto(Composant composant,
                                                ComposantDto composantDto) {
     
        composant.setAnalyseSql(composantDto.getAnalyseSql());
        composant.setBasesConcernees(composantDto.getBasesConcernees());
     
        TypeComposant typeComposant = null;
        try {
          typeComposant = typeComposantHome.findByPrimaryKey(composantDto.
              getCodeType());
     
          composant.setTypeComposant(typeComposant);
     
          //  composant.setCodeType(composantDto.getCodeType());
     
          BatchComposant batchComposant = batchComposantHome.findByPrimaryKey(
              composantDto.getCodeBatch());
          composant.setBatchComposant(batchComposant);
     
          //  composant.setCodeBatch(composantDto.getCodeBatch());
     
          Livraison livraison = null;
          composant.setLivraison(livraison);
     
          //  composant.setCodeLivraison(composantDto.getCodeLivraison());
     
          ReportComposant reportComposant = reportComposantHome.findByPrimaryKey(
              composantDto.getCodeReport());
          composant.setReportComposant(reportComposant);
     
          //  composant.setCodeReport(composantDto.getCodeReport());
     
          composant.setComposantsImpactes(composantDto.getComposantsImpactes());
          composant.setConsignesIntegration(composantDto.getConsignesIntegration());
          composant.setContraintes(composantDto.getContraintes());
          composant.setDateExecution(composantDto.getDateExecution());
          composant.setContraintes(composantDto.getContraintes());
          composant.setDatePremierTraitement(composantDto.getDatePremierTraitement());
          composant.setDefinitionObjectif(composantDto.getDefinitionObjectif());
          composant.setDescriptionTraitement(composantDto.getDescriptionTraitement());
          composant.setHashCode(composantDto.getHashCode());
          composant.setIdentification(composantDto.getIdentification());
          composant.setImpactInfocentre(composantDto.getImpactInfocentre());
          composant.setImpactsApplicatifs(composantDto.getImpactsApplicatifs());
          composant.setImpactsSysteme(composantDto.getImpactsSysteme());
          composant.setLienRessources(composantDto.getLienRessources());
          composant.setLienSpecTech(composantDto.getLienSpecTech());
          composant.setNatureTraitement(composantDto.getNatureTraitement());
          composant.setNomFichiersIni(composantDto.getNomFichiersIni());
          composant.setNomLibrairie(composantDto.getNomLibrairie());
          composant.setNomScript(composantDto.getNomScript());
          composant.setNumero(composantDto.getNumero());
          composant.setPeriodicite(composantDto.getPeriodicite());
          composant.setProcedureIncident(composantDto.getProcedureIncident());
          composant.setTempsPrevu(composantDto.getTempsPrevu());
          composant.setTempsReelConstate(composantDto.getTempsReelConstate());
          composant.setVersionNsa(composantDto.getVersionNsa());
          composant.setVersionwls(composantDto.getVersionwls());
          composant.setVolumeTraite(composantDto.getVolumeTraite());
     
          System.out.println(composant);
        } 
        catch (FinderException ex) {
        }
    Cependant, cette fonction me déclenche l'exception suivante :

    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
    java.rmi.RemoteException: EJB Exception: ; nested exception is: 
    	javax.ejb.EJBException: EJB Exception: ; nested exception is: javax.ejb.EJBException: [EJB:010145]When a cmp-field and a cmr-field (relationship) are mapped to the same column, the setXXX method for the cmp-field may not be called. The cmp-field is read-only.
    	at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:186)
    	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:284)
    	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:244)
    	at gest_livr_appli.EJB.Session.LivraisonSessionFacade_gjcvny_EOImpl_810_WLStub.createComposant(Unknown Source)
    	at gest_livr_appli.EJB.Delegate.LivraisonDelegate.createComposant(LivraisonDelegate.java:31)
    	at gest_livr_appli.Action.doMajListeComposantsAction.execute(doMajListeComposantsAction.java:47)
    	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
    	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6291)
    	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:97)
    	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3575)
    	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2573)
    	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178)
    	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:151)
    Caused by: javax.ejb.EJBException: EJB Exception: ; nested exception is: javax.ejb.EJBException: [EJB:010145]When a cmp-field and a cmr-field (relationship) are mapped to the same column, the setXXX method for the cmp-field may not be called. The cmp-field is read-only.
    	at gest_livr_appli.EJB.Session.LivraisonSessionFacadeBean.createComposant(LivraisonSessionFacadeBean.java:342)
    	at gest_livr_appli.EJB.Session.LivraisonSessionFacade_gjcvny_EOImpl.createComposant(LivraisonSessionFacade_gjcvny_EOImpl.java:632)
    	at gest_livr_appli.EJB.Session.LivraisonSessionFacade_gjcvny_EOImpl_WLSkel.invoke(Unknown Source)
    	at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:166)
    	... 21 more
    J'ai su que cette exception était du au fait d'appeller une fonction set inutilement car la relation définie par la clé étrangère entre cette entité et les autres le fait automatiquement. Seulement, même après avoir rajouté les findByPrimaryKey pour corriger ce plantage, j'ai toujours la même exception ...

    Savez-vous pourquoi ? Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Plutôt que de faire un new topic tout pourri, et vu que maintenant je suis dans une impasse, je fais un petit UP de celui-ci.

    J'ai changé un peu le code, mais l'exception est toujours belle et bien présente :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    private void setComposantFromComposantDto(Composant composant,
                                                ComposantDto composantDto) throws
          FinderException {
     
        composant.setAnalyseSql(composantDto.getAnalyseSql());
        composant.setBasesConcernees(composantDto.getBasesConcernees());
     
        try {
     
          TypeComposant typeComposant = typeComposantHome.findByPrimaryKey(composantDto.getCodeType());
          System.out.println(typeComposant);
     
    //      composant.setTypeComposant(typeComposant);
          //  composant.setCodeType(composantDto.getCodeType());
     
          BatchComposant batchComposant = batchComposantHome.findByPrimaryKey(composantDto.getCodeBatch());
          System.out.println(batchComposant);
     
     //     composant.setBatchComposant(batchComposant);
          //  composant.setCodeBatch(composantDto.getCodeBatch());
     
          Livraison livraison = null;
          System.out.println(livraison);
     
    //      composant.setLivraison(livraison);
          //  composant.setCodeLivraison(composantDto.getCodeLivraison());
     
          ReportComposant reportComposant = reportComposantHome.findByPrimaryKey(composantDto.getCodeReport());
          System.out.println(reportComposant);
     
      //    composant.setReportComposant(reportComposant);
          //  composant.setCodeReport(composantDto.getCodeReport());
     
          composant.setComposantsImpactes(composantDto.getComposantsImpactes());
          composant.setConsignesIntegration(composantDto.getConsignesIntegration());
          composant.setContraintes(composantDto.getContraintes());
          composant.setDateExecution(composantDto.getDateExecution());
          composant.setContraintes(composantDto.getContraintes());
          composant.setDatePremierTraitement(composantDto.getDatePremierTraitement());
          composant.setDefinitionObjectif(composantDto.getDefinitionObjectif());
          composant.setDescriptionTraitement(composantDto.getDescriptionTraitement());
          composant.setHashCode(composantDto.getHashCode());
          composant.setIdentification(composantDto.getIdentification());
          composant.setImpactInfocentre(composantDto.getImpactInfocentre());
          composant.setImpactsApplicatifs(composantDto.getImpactsApplicatifs());
          composant.setImpactsSysteme(composantDto.getImpactsSysteme());
          composant.setLienRessources(composantDto.getLienRessources());
          composant.setLienSpecTech(composantDto.getLienSpecTech());
          composant.setNatureTraitement(composantDto.getNatureTraitement());
          composant.setNomFichiersIni(composantDto.getNomFichiersIni());
          composant.setNomLibrairie(composantDto.getNomLibrairie());
          composant.setNomScript(composantDto.getNomScript());
          composant.setNumero(composantDto.getNumero());
          composant.setPeriodicite(composantDto.getPeriodicite());
          composant.setProcedureIncident(composantDto.getProcedureIncident());
          composant.setTempsPrevu(composantDto.getTempsPrevu());
          composant.setTempsReelConstate(composantDto.getTempsReelConstate());
          composant.setVersionNsa(composantDto.getVersionNsa());
          composant.setVersionwls(composantDto.getVersionwls());
          composant.setVolumeTraite(composantDto.getVolumeTraite());
     
          System.out.println(composant);
        }
        catch (EJBException ex) {
        }
     
       }

Discussions similaires

  1. Exception pour les tags JSP
    Par DomIII dans le forum Struts 2
    Réponses: 0
    Dernier message: 17/02/2015, 16h11
  2. Pas de logo pour les EJB
    Par jadey dans le forum Persistance des données
    Réponses: 0
    Dernier message: 10/02/2014, 10h40
  3. ErrBit - dashboard pour les exceptions
    Par abelar_s dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 12/08/2013, 11h33
  4. Réponses: 1
    Dernier message: 17/08/2006, 11h38

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