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 :

java.rmi.UnmarshalException: ClassNotFoundException [EJB3 Entity]


Sujet :

Java EE

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 39
    Par défaut java.rmi.UnmarshalException: ClassNotFoundException
    Bonjour,

    Je vous explique en quelques mots ce que je souhaite faire.

    J'ai un EJB Entity Category dont voici le code

    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
    package ejb.bean.entity
     
    @Entity
    @Table(name = "T_CATEGORY")
    @NamedQuery(name = "categories", query = "select c from Category c")
    public class Category implements ICategory {
     
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	private Integer idCategory;
     
    	@Column(name = "wording")
    	private String wording;
     
    	@OneToMany
    	private List<Article> articles;
     
    	public Category() {
    		super();
    	}
     
            ....
    Cet Ejb implémente l'interface suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package interfaces;
     
    import javax.ejb.Remote;
     
    @Remote(ICategory.class)
    public interface ICategory {
     
    	public String getDescription();
     
    }
    Ensuite j'ai créé un EJB StateLess qui me permet de récupérer toutes les catégories. Donc j'arrive très bien à partir de mon service catégories à récupérer la liste des catégories existantes en faisant comme suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<T> list = (List<T>)em.createNamedQuery(name).getResultList();
    Sachant que em est l'entity manager. Et que je n'utilise pas directement la classe Category mais son Interface.


    Donc une fois la liste récupérée au niveau de mon EJB StateLess si je l'affiche je retrouve bien les traces dans les logs. Par contre quand je fais appel à la méthode de EJB StateLess appartir d'un client tout ce passe bien appart la récupération de la liste de ICategory. Cela lève l'erreur suivante :

    Exception in thread "main" javax.ejb.EJBException: Error while sending a request
    Caused by: java.lang.RuntimeException: Error while handling answer on the remote side
    Caused by: java.rmi.UnmarshalException: ClassNotFoundException unmarshalling returnjava.lang.ClassNotFoundException: ejb.bean.entity.Category (no security manager: RMI class loader disabled)
    J'ai testé en renvoyant au client une ArrayList<String> et cela fonctionne. Pourtant je fais bien attention à utiliser des List que j'ai typé en ICategory. J'ai bien mis les bonnes annotations ( @Remote au niveau de l'interface ) et j'ai fait le lien sous eclipse du fichier source ou je met toutes mes interfaces Remote donc le client connait bien les interfaces. Ai-je oublié quelque chose ??

    Normalement je n'ai pas besoin de rajouter l'implémentation de Serializable, le faite de mettre l'annotation @remote fait tout ??

    Ou est-ce du au faite que j'ai fais de la généricité ?? Car j'ai créé un EJB StateLess Dao qui est typable ( je ne sais pas si ca se dit ^^ ). Donc dans mon service categorie j'utilise cette EJB en le typant avec ICategory.

    Peut être que je dois faire non pas un stateless mais un statefull ??

    La je ne sais plus très bien quoi faire, quelqu'un pourrai me donner une piste svp

    Merci d'avance,

    Cordialement,

    Matthieu

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 39
    Par défaut
    C'est bon j'ai trouvé, enfaite j'utilisais une interface @Remote sur chacune de mes entities et donc il ne faut pas quelles implementent d'interface. Je débute dans les EJB donc voila.

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

Discussions similaires

  1. [Framework] [RMI] java.rmi.UnmarshalException
    Par YokoSop dans le forum Spring
    Réponses: 12
    Dernier message: 08/12/2010, 15h29
  2. [RMI] java.rmi.UnmarshalException
    Par anicaise dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 06/06/2008, 10h34
  3. Réponses: 2
    Dernier message: 16/01/2007, 23h26
  4. Erreur de connexion : java RMI & linux
    Par pedouille dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/05/2006, 20h04
  5. Problême de Socket avec un applet java (RMI/policy)
    Par Vesperal dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/04/2006, 12h00

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