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

Glassfish et Payara Java Discussion :

[Déploiement Web] NoClassDefFoundError


Sujet :

Glassfish et Payara Java

  1. #1
    Membre averti
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Points : 316
    Points
    316
    Par défaut [Déploiement Web] NoClassDefFoundError
    Bonjour,

    Je suis tout nouveau dans Glassfish et la technologie EJB en général. Je suis en train d'essayer de reproduire l'exemple présenté à la fin de l'ouvrage "EJB 3 des concepts à l'écriture de code" (très bien au passage).
    J'ai récupéré le code sur le site de Dunod pour faire toutes les comparaisons nécessaires entre ma version et la leur, mais là je bloque. Leur exemple est décrit sur NetBeans, et le mien est sur Eclipse.

    Grosso-modo, voici l'erreur que j'obtiens :
    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
     
    INFO: ADM1064 : Le fichier à télécharger sur [C:\Documents and Settings\Olivier\Local Settings\Temp\s1astempdomain1server248582184\ObjectExchange.ear] existe et sera écrasé.
    INFO: ADM1006 : Téléchargement du fichier sur :[C:\Documents and Settings\Olivier\Local Settings\Temp\s1astempdomain1server248582184\ObjectExchange.ear]
     
    GRAVE: Class [ Lfr/societe/tests/objectexchange/entity/User; ] not found. Error while loading [ class fr.societe.tests.objectexchange.web.admin.UserManagerBean ]
    ATTENTION: Error in annotation processing: java.lang.NoClassDefFoundError: Lfr/societe/tests/objectexchange/entity/User;
    GRAVE: Class [ fr/societe/tests/objectexchange/entity/Resource ] not found. Error while loading [ class fr.societe.tests.objectexchange.session.PublicServiceBean ]
    ATTENTION: Error in annotation processing: java.lang.NoClassDefFoundError: fr/societe/tests/objectexchange/entity/Resource
     
    GRAVE: Une exception s''est produite dans la phase J2EEC.java.lang.RuntimeException: Error processing EjbDescriptor
    com.sun.enterprise.deployment.backend.IASDeploymentException: Erreur lors du chargement des descripteurs du déploiement pour le module [ObjectExchange] -- Error processing EjbDescriptor
    	at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:406)
    	at com.sun.enterprise.deployment.backend.AppDeployerBase.loadDescriptors(AppDeployerBase.java:359)
    	at com.sun.enterprise.deployment.backend.AppDeployer.explodeArchive(AppDeployer.java:303)
    	at com.sun.enterprise.deployment.backend.AppDeployer.deploy(AppDeployer.java:207)
    	at com.sun.enterprise.deployment.backend.AppDeployer.doRequestFinish(AppDeployer.java:148)
    ...
    L'arborescence de mes fichiers :



    Après je ne sais pas trop quoi vous montrer ; peut-être la classe UserManagerBean à l'origine du problème. D'ailleurs, ce qui me semble bizarre dans cette classe, c'est qu'on est dans la "zone" présentation, et on accède directement aux beans entités, d'après le livre il me semblait que ce n'était pas possible :

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    package fr.societe.tests.objectexchange.web.admin;
     
    import java.util.Collection;
     
    import javax.ejb.EJB;
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;
    import javax.servlet.http.HttpServletRequest;
     
    import fr.societe.tests.objectexchange.entity.User;
    import fr.societe.tests.objectexchange.session.AdminServiceBeanLocal;
     
    /**
     * @author Olivier
     * @date 9 mars 2010
     */
    public class UserManagerBean 
    {
     
        @EJB()
        private AdminServiceBeanLocal adminService;
     
        private User managedUser;
     
        /** Creates a new instance of UserManagerBean */
        public UserManagerBean() 
        {
            managedUser = new User();
        }
     
        public void initUserFromRequestParam() 
        {
            managedUser = adminService.findUserById(getManagedUserId());
        }
     
        public int getManagedUserId() 
        {
            ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletRequest request = (HttpServletRequest)ec.getRequest();
            String param = request.getParameter("id");
            return Integer.parseInt(param);
        }
     
        /**
         * Retourne les utilisateurs de la base de données
         *
         */
        public Collection<User> getList() 
        {
            return adminService.findAllUsers();
        }
     
        /**
         * Détaille l'utilisateur sélectionné
         */
        public void detail() 
        {
     
        }
     
        public void remove() 
        {
            adminService.deleteUser(getManagedUserId());
        }
     
        public void edit() 
        {
            initUserFromRequestParam();
        }
     
        public void newBlank() 
        {
            managedUser = new User();
        }
     
        public void save() 
        {
            if(managedUser.getId() > 0) 
            {
                adminService.updateUser(managedUser);
            }
            else 
            {
                adminService.addUser(managedUser);
                newBlank();
            }
        }
     
        public User getManagedUser() 
        {
            return managedUser;
        }
     
        public void setManagedUser(User managedUser) 
        {
            this.managedUser = managedUser;
        }
     
    }
    Avec un grand merci pour vos suggestions !

  2. #2
    Membre averti
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Points : 316
    Points
    316
    Par défaut
    Mon fichier web.xml dans WEB-INF avait disparu, je l'ai récupéré :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>ObjectExchangeWeb</display-name>
     
      <context-param>
      	<param-name>com.sun.faces.verifyObjects</param-name>
      	<param-value>false</param-value>
      </context-param>
      <context-param>
      	<param-name>com.sun.faces.validateXml</param-name>
      	<param-value>true</param-value>
      </context-param>
      <context-param>
      	<param-name>javax.faces.CONFIG_FILES</param-name>
      	<param-value>/WEB-INF/faces-config.xml</param-value>
      </context-param>
      <context-param>
      	<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      	<param-value>client</param-value>
      </context-param>
      <context-param>
        <param-name>facelets.LIBRARIES</param-name>
        <param-value>/WEB-INF/tomahawk.taglib.xml</param-value>
      </context-param>
     
     
      <!-- Declaration de la servlet JSF -->
      <servlet>
      	<servlet-name>Faces Servlet</servlet-name>
      	<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      	<load-on-startup>1</load-on-startup>
      </servlet>
      <!-- Mapping des pages JSF (suffixe JSF) --> 
      <servlet-mapping>
      	<servlet-name>Faces Servlet</servlet-name>
      	<url-pattern>*.jsf</url-pattern>
      </servlet-mapping>
     
      <!-- Declaration de la servlet loadImage -->
      <servlet>
        <servlet-name>LoadImageFromResourceServlet</servlet-name>
        <servlet-class>fr.crosstalk.tests.objectexchange.web.servlet.LoadImageFromResourceServlet</servlet-class>
      </servlet>
      <!-- Mapping de la servlet LoadImage -->
      <servlet-mapping>
        <servlet-name>LoadImageFromResourceServlet</servlet-name>
        <url-pattern>/loadResourceImage</url-pattern>
      </servlet-mapping>
     
     
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
     
     
      <filter>
          <filter-name>MyFacesExtensionsFilter</filter-name>
          <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
          <init-param>
              <param-name>maxFileSize</param-name>
              <param-value>20m</param-value>
          </init-param>
      </filter>
     
      <!-- extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages  -->
      <filter-mapping>
          <filter-name>MyFacesExtensionsFilter</filter-name>
          <!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
          <servlet-name>Faces Servlet</servlet-name>
      </filter-mapping>
     
      <!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.)  -->
      <filter-mapping>
          <filter-name>MyFacesExtensionsFilter</filter-name>
          <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
      </filter-mapping> 
    </web-app>
    Par contre j'ai toujours le même problème. De plus, le buidpath du projet "Web" est configuré avec les projets UP et EJB. Par contre, je ne vois rien du tout dans le fichier MANIFEST.INF du dossier META-INF du projet Web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Manifest-Version: 1.0
    Class-Path:
    Est-ce normal ? Eclipse se souvient pourtant des classpath ; il les enregsitre où ?

  3. #3
    Membre averti
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Points : 316
    Points
    316
    Par défaut
    Bon je crois que j'ai fini par trouver...
    En fait j'ai ajouté un projet supplémentaire aux projets par défaut d'Eclipse quand on crée un projet EJB : J'ai créé un new JPA Project.
    Par contre le lien n'était pas fait dans le projet de base ObjectExchange.

    Il faut faire clic droit, properties, "Java EE Module Dependencies" puis cocher le projet manquant (le cas échéant). Cela met à jour les liens qui se trouvent dans le fichier .settings/org.eclipse.wst.common.component.

    Pas vraiment intutitif

  4. #4
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Bonjour,

    j'ai ce message d'erreur au déploiement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GRAVE: Class [ dz/elit/commun/ihm/controller/ListeDynamique ] not found. Error while loading [ class dz.elit.sirh.controller.administration.WilayaController ]
    que je n'arrive pas solutionnées. (quelqu'un aurais des idées)

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 02/02/2009, 00h54
  2. Déploiement web services SOAP sur Websphere 5.1
    Par g_rare dans le forum Websphere
    Réponses: 1
    Dernier message: 19/03/2007, 10h30
  3. [Débutant][Déploiement]web.xml manquant
    Par Janitrix dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 16/05/2006, 09h04
  4. [CR][VS.NET] Déploiement web d'états
    Par Giill dans le forum SDK
    Réponses: 2
    Dernier message: 16/11/2004, 17h43
  5. Réponses: 1
    Dernier message: 06/12/2002, 22h33

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