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 :

Problème avec les Bean Remote JEE


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut Problème avec les Bean Remote JEE
    Bonjour à tous,

    J'ai décidé de faire une petite application en archi n-tiers et je rencontre un problème qui est récurrent sur le web. Malgré un bon nombre de posts existant sur le web, je crois ne pas encore avoir trouvé la solution... Pour info, j'utilise JBOSS AS 7.1.1 et JAVA 1.7.

    L'application se divise en 3 projets: projet jpa, projet business et projet web.

    Voici un exemple de classe JPA que j'utilise:

    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
    @Entity
    @NamedQuery(name="Stream.findAll", query="SELECT s FROM Stream s")
    public class Stream implements Serializable {
    	private static final long serialVersionUID = 1L;
     
    	@Id
    	@Column(name="id_stream")
    	private int idStream;
     
    	private String description;
     
    	private String name;
     
    	public Stream() {
    	}
     
            ...
    }
    J'ai mes classes dite business qui s'occupe du traitement métier. Ce sont des Beans qui manipule Les classes JPA par le biais du fameux Entity Manager.
    Voici l'interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Remote
    public interface StreamServiceRemote {
     
    	public List<Stream> getHomeStreams();
    }
    Voici la classe implémentant l'interface:

    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
    @Stateless(name="StreamService")
    public class StreamService implements StreamServiceRemote {
     
    	@PersistenceContext(unitName="jpa")
    	EntityManager em;
     
        public StreamService() {
     
        }
     
    	public List<Stream> getHomeStreams() {
     
    		Query q = em.createQuery("SELECT s FROM "+Stream.class.getName()+" s");
    		List<Stream> results = (List<Stream>) q.getResultList();
    		return results;
    	}
     
    }
    La problématique vient de mon projet Jax-RS qui n'injecte pas correctement mon Bean à l'aide de l'annotation @EJB.
    Voici un exemple d'injection:

    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
    @Stateless
    @Path("home")
    public class HomeController {
     
    	@EJB
    	private StreamServiceRemote streamService;
     
    	@GET
    	@Path("")
    	public Viewable index(@Context HttpServletRequest request, @Context HttpServletResponse response) {
     
    		List<Stream> listStream = streamService.getHomeStreams();
    		request.setAttribute("listStream", listStream);
    		return new Viewable("/home", null);
    	}
     
    }
    A savoir que quand je lance mon serveur jboss, je n'ai pas d'erreur apparente et les EJB sont bien pris en compte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    11:29:06,431 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named StreamService in deployment unit subdeployment "business.jar" of deployment "ear.ear" are as follows:
     
    	java:global/ear/business/StreamService!com.popme.business.remote.StreamServiceRemote
    	java:app/business/StreamService!com.popme.business.remote.StreamServiceRemote
    	java:module/StreamService!com.popme.business.remote.StreamServiceRemote
    	java:jboss/exported/ear/business/StreamService!com.popme.business.remote.StreamServiceRemote
    	java:global/ear/business/StreamService
    	java:app/business/StreamService
    	java:module/StreamService
    L'erreur qui pose problème est un simple NullPointer Exception lors de la manipulation de "private StreamServiceRemote streamService;" dans mon projet Jax-RS.

    Merci de vos réponses

  2. #2
    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
    Tu n'as pas pris le bon attribut pour ton ejb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @Stateless(mappedName="StreamService")
    il faudrait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @Stateless(name="StreamService")
    Un autre truc qui me choque, @Stateless + @ManagedBean
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    J'ai donc remplacé "mappedName" par "name" et enlever le ManagedBean. Et même résultat.

  4. #4
    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
    Comment appels-tu HomeController ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    J'accède à l'adresse suivante de mon webservice:

    http://127.0.0.1:8080/web/home

    et ça me retourne:

    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
    java.lang.NullPointerException
    	com.popme.web.controller.HomeController.index(HomeController.java:32)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	java.lang.reflect.Method.invoke(Method.java:606)
    	com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:156)
    	com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
    	com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:166)
    	com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:74)
    	com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:114)
    	com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:66)
    	com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:709)
    	com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:667)
    	com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:658)
    	com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:318)
    	com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
    	com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:751)
    	com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:703)
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de JBoss Web/7.0.13.Final.
    Sans l'appel du bean dans la classe HomeController, j'ai évidemment le comportement "normal". J'ai bien ma page web.

  6. #6
    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
    Pourquoi tu as les 2 annotations ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Stateless
    @Path("home")
    @Path devrait suffire
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. GAE-JEE, problème avec les Google Charts au déploiement
    Par Gogochou dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 28/04/2015, 11h24
  2. Problème avec les beans
    Par opium1er dans le forum JSF
    Réponses: 5
    Dernier message: 29/06/2013, 00h40
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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