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

Format d'échange (XML, JSON...) Java Discussion :

Erreur ’injection de ressources dans le bean [JAXB]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Erreur ’injection de ressources dans le bean
    Bonjour à tous,

    Je débute dans la programmation JSF. Ici j'essaie de récupérer des données d'un fichier xml afin de placer des markers sur une carte.

    J'utilise JAXB pour la "gestion" des données dans l'xml.
    Lors de la génération de mon code, j'obtiens l'erreur : "Erreur lors de l’injection de ressources dans le bean géré «markersView»"

    Je ne sais pas exactement quelle partie du code pourrait être utile à la résolution de mon problème donc je vais mettre mon beanmarkersView et au besoin, n'hésitez pas à me demander d'autres parties de mon code.

    markersView :

    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
    101
    102
    103
    104
    105
    106
    107
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package beanMarker;
     
    import generated.Carto;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import javax.inject.Named;
    import javax.enterprise.context.Dependent;
    import java.io.Serializable;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.annotation.PostConstruct;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.ViewScoped;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Unmarshaller;
     
    import org.primefaces.event.map.OverlaySelectEvent;
    import org.primefaces.model.map.DefaultMapModel;
    import org.primefaces.model.map.LatLng;
    import org.primefaces.model.map.MapModel;
    import org.primefaces.model.map.Marker;
     
    /**
     *
     * @author Jérôme
     */
    @Named(value = "MarkersView")
    @Dependent
    @ManagedBean
    @ViewScoped
    public class MarkersView implements Serializable {
     
        private MapModel advancedModel;
        private Marker marker;
     
        String coordNumber = "coord";
     
        /*public MarkersView() throws JAXBException, FileNotFoundException {
            JAXBContext jc= JAXBContext.newInstance(generated.ObjectFactory.class);
            Unmarshaller u = jc.createUnmarshaller();
            Carto carto
                    = (Carto) u.unmarshal(new FileInputStream("C:\\Users\\Jérôme\\Documents\\EPSI I4\\WebServices - MARTHOS Lucien\\Applications\\2-TP1\\carto.xml"));
            List markers = (List) carto.getMarkers();
            for(int i=0; i < markers.size(); i++) {
                Marker markerUnique = (Marker) markers.get(i);
            }
        }*/
     
        @PostConstruct
        public void init() {
            try {
                advancedModel = new DefaultMapModel();
     
                JAXBContext jc = JAXBContext.newInstance(generated.ObjectFactory.class);
     
                Unmarshaller u = jc.createUnmarshaller();
     
                Carto carto = (Carto) u.unmarshal(new FileInputStream("C:\\Users\\Jérôme\\Documents\\EPSI I4\\WebServices - MARTHOS Lucien\\Applications\\2-TP1\\carto.xml"));
     
                List markers = (List) carto.getMarkers().getMarker();
     
                for(int i=0; i < markers.size(); i++) {
                    coordNumber = coordNumber+i;
                    System.out.println(coordNumber);
     
                    marker = (Marker) markers.get(i);
                    LatLng coordNumber = new LatLng(marker.getLatlng().getLat(),marker.getLatlng().getLng());
     
                    advancedModel.addOverlay(new Marker(coordNumber));
                }
     
     
     
     
                //coordonnées
                //LatLng coord1 = new LatLng(48.8613, 2.32442);
                //LatLng coord2 = new LatLng(48.8371336894515, 2.37434055460561);
     
                //basic marker
                //advancedModel.addOverlay(new Marker(coord1, "Port Solferino"));
                //advancedModel.addOverlay(new Marker(coord2, "Quai Mauriac / Pont de Bercy"));
            } catch (JAXBException ex) {
                Logger.getLogger(MarkersView.class.getName()).log(Level.SEVERE, null, ex);
            } catch (FileNotFoundException ex) {
                Logger.getLogger(MarkersView.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        public MapModel getAdvancedModel() {
            return advancedModel;
        }
     
        public void onMarkerSelect(OverlaySelectEvent event) {
            marker = (Marker) event.getOverlay();
        }
     
        public Marker getMarker() {
            return marker;
        }
    }
    Merci d'avance pour votre aide et vos conseils

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Update
    Je me suis rendu compte que dans mon index.xhtml j'appelais mon bean avec "markersView" et non avec "MarkersView". J'ai donc fait les modifications nécessaires mais j'obtiens maintenant cette erreur : "WELD-000049: Unable to invoke public void beanMarker.MarkersView.init() on beanMarker.MarkersView@18653830"

    La stack 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
    org.jboss.weld.exceptions.WeldException: WELD-000049: Unable to invoke public void beanMarker.MarkersView.init() on beanMarker.MarkersView@18653830
    	at org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker.invokeMethods(DefaultLifecycleCallbackInvoker.java:100)
    	at org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker.postConstruct(DefaultLifecycleCallbackInvoker.java:81)
    	at org.jboss.weld.injection.producer.BasicInjectionTarget.postConstruct(BasicInjectionTarget.java:126)
    	at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:162)
    	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:69)
    	at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:101)
    	at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)
    	at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:761)
    	at org.jboss.weld.el.AbstractWeldELResolver.lookup(AbstractWeldELResolver.java:120)
    	at org.jboss.weld.el.AbstractWeldELResolver.getValue(AbstractWeldELResolver.java:90)
    	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:188)
    	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    	at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:116)
    	at com.sun.el.parser.AstValue.getBase(AstValue.java:151)
    	at com.sun.el.parser.AstValue.getValue(AstValue.java:200)
    	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
    	at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
    	at org.primefaces.component.gmap.GMap.getModel(GMap.java:113)
    	at org.primefaces.component.gmap.GMapRenderer.encodeOverlays(GMapRenderer.java:123)
    	at org.primefaces.component.gmap.GMapRenderer.encodeScript(GMapRenderer.java:87)
    	at org.primefaces.component.gmap.GMapRenderer.encodeEnd(GMapRenderer.java:51)
    	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
    	at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
    	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
    	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
    	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
    	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
    	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
    	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker.invokeMethods(DefaultLifecycleCallbackInvoker.java:98)
    	... 65 more
    Caused by: java.lang.ClassCastException: generated.Marker cannot be cast to org.primefaces.model.map.Marker
    	at beanMarker.MarkersView.init(MarkersView.java:73)
    	... 70 more

  3. #3
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Il se peut que vous avez quelque part les codes qui font le pont entre les données des markers dans carto.xml et la classe Marker de primefaces - c'est possible mais on ne sait pas d'une manière certaine. En tout cas, ce qu'on fait sortir via jaxb n'est pas de Marker de primefaces, mais de classe de generated.Marker. Les déclaration des variables devraient se faire avec des types pleinement qualifies pour le package "generated" pour Marker, Markers, sinon pour Carto, pour ne pas en conflit avec Marker, Markers,... de primefaces.
    Code java : 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
    //...etc
        private generated.Marker marker;
        //etc...
        public void init() {
            //etc...
     
                generated.Carto carto = (generated.Carto) u.unmarshal(new FileInputStream("C:\\Users\\Jérôme\\Documents\\EPSI I4\\WebServices - MARTHOS Lucien\\Applications\\2-TP1\\carto.xml"));
     
                List<generated.Marker> markers = (List<generated.Marker>) carto.getMarkers().getMarker();
     
                //etc...
     
                   marker = (generated.Marker) markers.get(i);
     
            //etc...
        }
     
        //etc...
    Voilà ce que je peux déduire avec beaucoup d'extrapolation si ça fait au final apporter d'idée bien raisonnée.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci tsuji. Visiblement le problème venait bien de ça.
    Voici le résultat ==> Nom : résultat.PNG
Affichages : 1520
Taille : 490,3 Ko

    Ca me rassure de ne pas avoir eu un problème de logique. ^^'

    Bonne soirée à tous.
    Je clos le sujet

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/05/2013, 02h02
  2. Réponses: 4
    Dernier message: 25/05/2011, 09h23
  3. Injection de dépendance dans un Bean (MVC)
    Par clem_alain dans le forum Java EE
    Réponses: 8
    Dernier message: 08/02/2011, 10h58
  4. Weblogic 10.0 : injection d'EJB dans managed bean JSF
    Par loic38_01 dans le forum Weblogic
    Réponses: 1
    Dernier message: 05/09/2008, 13h46
  5. [EJB3] Injection dans un bean
    Par *alexandre* dans le forum Java EE
    Réponses: 5
    Dernier message: 14/02/2007, 09h17

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