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

Java EE Discussion :

Exception non traitée


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Exception non traitée
    slt a vous voila j'ai une exception qui apparait lorsque j'essaye d’exécuter ce bout de code et dont je ne comprend pas sa raison d’être.
    bref voici le code de ce dont je souhait faire :

    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    // mon entity
         @Entity
    @Table(name = "tabfilm", catalog = "ADMB", schema = "public")
    @NamedQueries({
        @NamedQuery(name = "Tabfilm.findAll", query = "SELECT t FROM Tabfilm t"),
        @NamedQuery(name = "Tabfilm.findByIdfilm", query = "SELECT t FROM Tabfilm t WHERE t.idfilm = :idfilm"),
        @NamedQuery(name = "Tabfilm.findByTitre", query = "SELECT t FROM Tabfilm t WHERE t.titre = :titre")})
    public class Tabfilm implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @Basic(optional = false)
        @Column(name = "idfilm", nullable = false)
        private Integer idfilm;
        @Basic(optional = false)
        @Column(name = "titre", nullable = false, length = 40)
        private String titre;
        @JoinColumn(name = "anneesortie", referencedColumnName = "Idannee", nullable = false)
        @ManyToOne(optional = false)
        private Tabannee anneesortie;
     
        public Tabfilm() {
        }
     
        public Tabfilm(Integer idfilm) {
            this.idfilm = idfilm;
        }
     
        public Tabfilm(Integer idfilm, String titre) {
            this.idfilm = idfilm;
            this.titre = titre;
        }
     
        public Integer getIdfilm() {
            return idfilm;
        }
     
        public void setIdfilm(Integer idfilm) {
            this.idfilm = idfilm;
        }
     
        public String getTitre() {
            return titre;
        }
     
        public void setTitre(String titre) {
            this.titre = titre;
        }
     
        public Tabannee getAnneesortie() {
            return anneesortie;
        }
     
        public void setAnneesortie(Tabannee anneesortie) {
            this.anneesortie = anneesortie;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (idfilm != null ? idfilm.hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Tabfilm)) {
                return false;
            }
            Tabfilm other = (Tabfilm) object;
            if ((this.idfilm == null && other.idfilm != null) || (this.idfilm != null && !this.idfilm.equals(other.idfilm))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "sevice.Tabfilm[idfilm=" + idfilm + "]";
        }
     
    }
    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
       // mon bean 
    	   @Stateless
    public class Testbean implements TestbeanLocal {
        @PersistenceContext(unitName = "Testprojet-ejbPU")
        private EntityManager em;
     
        public void persist(Object object) {
            em.persist(object);
        }
     
        // Add business logic below. (Right-click in editor and choose
        // "Insert Code > Add Business Method")
     
     
     
     public Collection <Tabfilm> afficheall()
        {
           Query query = em.createNamedQuery("Tabfilm.findAll");
           Collection<Tabfilm> personnes = query.getResultList();
           return personnes;
     
        };
     
    }
     
      //mon interface local
     
       @Local
    public interface TestbeanLocal {
     
        public java.util.Collection<sevice.Tabfilm> afficheall();
     
     
    }
    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
     
     //ma servlet
     @WebServlet(name="ServletTest", urlPatterns={"/ServletTest"})
    public class ServletTest extends HttpServlet {
        @EJB
        private TestbeanLocal testbean;
     
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
     
                Collection liste = testbean.afficheall();
                request.setAttribute("Liste",liste);
                 RequestDispatcher dp = request.getRequestDispatcher("index.jsp");
                 dp.forward(request, response);
     
        } 
     
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        } 
     
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
     
     
        @Override
        public String getServletInfo() {
            return "Short description";
        }// </editor-fold>
     
    }
     
     // mon index.jsp
     <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
     
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
     
     
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
         <ul>
            <li> <a href="ServletTest">Appeler la Servlet de Test </a></li>
        </ul>
     
             <h1>List of people</h1>
         <ul>
         <c:forEach var="u" items="${requestScope['Liste']}">   <li> ${u.name} </li>  </c:forEach>
        </ul>
        </body>
    </html>
    mais après exécution j'obtiens exception dont voici un extrait de la trace :
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    WARNING: A system exception occurred during an invocation on EJB Testbean method public java.util.Collection sevice.Testbean.afficheall()
    javax.ejb.EJBException
            at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5119)
            at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5017)
            at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4805)
            at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2004)
            at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1955)
            at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:198)
            at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84)
            at $Proxy167.afficheall(Unknown Source)
            at Service.ServletTest.processRequest(ServletTest.java:39)
            at Service.ServletTest.doGet(ServletTest.java:58)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
            at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
            at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
            at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
            at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
            at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
            at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
            at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
            at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
            at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
            at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
            at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
            at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
            at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
            at java.lang.Thread.run(Thread.java:662)
    Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: org.postgresql.util.PSQLException: ERROR: cross-database references are not implemented: "admb.public.tabfilm"
    Error Code: 0
    Call: SELECT idfilm, titre, anneesortie FROM ADMB.public.tabfilm
    Query: ReadAllQuery(name="Tabfilm.findAll" referenceClass=Tabfilm sql="SELECT idfilm, titre, anneesortie FROM ADMB.public.tabfilm")
            at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333)
            at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:687)
            at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:530)
            at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:529)
            at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:205)
            at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:191)
            at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:262)
            at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:618)
            at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2537)
            at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2496)
            at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:455)
            at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:997)
            at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:675)
            at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:958)
            at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:432)
            at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1021)
            at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2857)
            at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1225)
            at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1207)
            at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1181)
            at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:453)
            at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultList(EJBQueryImpl.java:681)
            at sevice.Testbean.afficheall(Testbean.java:35)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1056)
            at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1128)
            at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5292)
            at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:615)
            at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797)
            at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:567)
            at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:157)
            at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:139)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
    Notons que j'utilise comme SGBD PostgresSql.alors que faire,qu'est ce que je n'ai pas compris ou vu?

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Quel est ton persistence.xml ?
    Je pense que c'est ton préfixe admb.public. qu'il n'apprécie pas.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Enlève catalog = "ADMB" dans l'entity
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut exception non traiter
    slt a vous j'ai enlevé ADMB de mon catalog la même erreur persiste. ensuite je pense que c'est peut du au faite que la référence implémenté par ma persistance est admb.public or ma base de donnée est ADMB en majuscule et non en miniscule bref voici mon persistence.xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
      <persistence-unit name="Testprojet-ejbPU" transaction-type="JTA">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <jta-data-source>jdbc/ADMB</jta-data-source>
        <properties>
        </properties>
      </persistence-unit>
    </persistence>
    je suis vraiment bloc que car mon pool de connexion associé à ma JDNI jdbc/ADMB fonctionne bien.pourquoi alors cette erreur.
    pourquoi sa ne marche pas:

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Bonjour,
    Si ta ressource JDBC précise déjà le schéma et le catalog, essaye de ne rien préciser dans ton code, juste le tableName.

  6. #6
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut exception non traiter
    slt je ne vous comprend pas lorsque vous me demande de ne rien précisé dans mon code juste le tablename .puisque je ne pense pas avoir précisé une chose dans le code.

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Peut-être est-ce dû au fait que tu as appelé ton schéma "public" -> mot réservé SQL
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la requete sql générée n'est pas digérée par postgres:

    "from admb.public.tabfilm"

    et je suis à peu près sur que tapper cette même requete dans une ligne de commande postgres amènerais le même bordel. Comme dit, vire le schema et, tant qu'à faire le catalog. Tu n'en a pas besoin. Le nom de la table devrais suffire.

  9. #9
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Citation Envoyé par narutoe Voir le message
    slt je ne vous comprend pas lorsque vous me demande de ne rien précisé dans mon code juste le tablename .puisque je ne pense pas avoir précisé une chose dans le code.
    Ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Table(name = "tabfilm", catalog = "ADMB", schema = "public")

  10. #10
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Exception non traitée
    merci encore de votre assistance toutefois je doute for que soit sa le problème car après réflexion j'avais compris la pense de Mathieu
    cependant cela na pas change car la même EJB.exception est produit.avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @Entity
    @Table(name = "Tabfilm", catalog = "", schema = "")

Discussions similaires

  1. [Débutant] Les exceptions non traitées ne sont pas lévées
    Par pascbr dans le forum VB.NET
    Réponses: 3
    Dernier message: 22/11/2012, 10h00
  2. Interception d'exceptions non traitées
    Par vanitom dans le forum C++
    Réponses: 4
    Dernier message: 20/04/2009, 14h24
  3. exception non traitée
    Par lamis2009 dans le forum Forms
    Réponses: 1
    Dernier message: 22/02/2009, 08h48
  4. Exception non traitée
    Par filot dans le forum Struts 1
    Réponses: 2
    Dernier message: 18/06/2007, 16h22
  5. [Debutant] Exceptions non traitées
    Par L. Sierra dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2006, 19h16

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