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 :

NullPointerException de unmarshal


Sujet :

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

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut NullPointerException de unmarshal
    Bonjour,

    J'ai un souci avec ce bout de 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
    InputStream in = null;
            try {
                in = new ByteArrayInputStream(str.getBytes());
     
                JAXBContext context = JAXBContext.newInstance(clazz);
                Unmarshaller unm = context.createUnmarshaller();
                return (Resp)unm.unmarshal(in);
            }
     
            catch (JAXBException e) {
                e.printStackTrace();
                logger.error(e.getMessage(), e);
                throw new AtCisTranscodeException(e);
            }
     
            catch (Throwable e) {
                e.printStackTrace();
                logger.error(e.getMessage(), e);
                throw new AtCisTranscodeException(e);
            }
    En fait ce que je fais, je me connecte à une machine à distance, je lui envoie une requête, cette dernière me renvoie la réponse sous forme de XML, je récupère mes données et je fais unmarshal, (code dessus).
    Lorsque je lance le debuggeur tout se passe bien, je vois bien mes données mais une fois que je suis dans la fonction, je rentre dans le catch de Throwable, et voilà l'erreur que j'ai
    java.lang.NullPointerException
    ERROR JaxbXmlTranscoder -
    java.lang.NullPointerException
    at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:305)
    at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:305)
    at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:269)
    at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.addToPack(Lister.java:269)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Scope.add(Scope.java:121)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Scope.add(Scope.java:121)
    at com.sun.xml.bind.v2.runtime.property.ArrayERProperty$ReceiverImpl.receive(ArrayERProperty.java:213)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:538)
    at com.sun.xml.bind.v2.runtime.property.ArrayERProperty$ReceiverImpl.receive(ArrayERProperty.java:213)
    at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:158)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:538)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:606)
    at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:158)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1742)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2900)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1742)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2900)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123 at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:218)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:190)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:204)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
    at com.systel.modesecours.client.atcis.support.JaxbXmlTranscoder.unmarshal(JaxbXmlTranscoder.java:77)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:218)
    at com.systel.modesecours.client.atcis.support.SimpleRemoteService.send(SimpleRemoteService.java:68)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:190)
    at com.systel.modesecours.client.service.impl.MaterielServiceImpl.listeEtatMateriel(MaterielServiceImpl.java:205)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
    at com.systel.modesecours.client.ui.service.ListeEtatMaterielService$1.call(ListeEtatMaterielService.java:45)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:204)
    at com.systel.modesecours.client.ui.service.ListeEtatMaterielService$1.call(ListeEtatMaterielService.java:35)
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1259)
    at com.systel.modesecours.client.atcis.support.JaxbXmlTranscoder.unmarshal(JaxbXmlTranscoder.java:77)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at com.systel.modesecours.client.atcis.support.SimpleRemoteService.send(SimpleRemoteService.java:68)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at com.systel.modesecours.client.service.impl.MaterielServiceImpl.listeEtatMateriel(MaterielServiceImpl.java:205)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at com.systel.modesecours.client.ui.service.ListeEtatMaterielService$1.call(ListeEtatMaterielService.java:45)
    at java.lang.Thread.run(Thread.java:722)
    ERROR SimpleRemoteService - java.lang.NullPointerException
    at com.systel.modesecours.client.ui.service.ListeEtatMaterielService$1.call(ListeEtatMaterielService.java:35)
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1259)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    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 : 45
    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
    faudrait mettre un breakpoint sur la génération de NullPointerException, pour voir dans quelle collection il se retrouver avec un collection vide et remonter à la mano la pile d'appel pour savoir pourquoi elle est vide. Parce que là, j'ai pas d'idée ^^

    Est-ce que ton xml utiliserais des collections un peu particulières (autres que ce qui se trouve dans java.util), que jaxb serait incapable d'instancier?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    Est-ce que ton xml utiliserais des collections un peu particulières (autres que ce qui se trouve dans java.util), que jaxb serait incapable d'instancier?
    C'est pas moi qui a fait le fichier xml, je ne peux pas le voir (je pense)
    comment je peux connaitre la liste utilisée dans le fichier?

    Merci

  4. #4
    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 : 45
    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
    ben normalement c'est indiqué dans le xml. Poste le xml qu'on y jette éventuellement un oeil.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    au fait
    mon contrôleur lance le service
    ListePlanningsEtatService.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final ListePlanningsEtatResponse response = service.listEtatPlanning(new ListePlanningsEtatRequest());
    ListePlanningsEtatResponse.java
    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
     
    @XmlRootElement(name = "root")
    public class ListePlanningsEtatResponse extends Response {
     
    	private List<PlanningEtat> etatsPlanning;
     
    	public ListePlanningsEtatResponse() {
    		super("listePlanningsEtat");
    	}
     
     
    	@XmlElementWrapper(name = "listePlanningsEtat")
    	@XmlElement(name = "planningEtat")
    	public List<PlanningEtat> getPalnningEtat() {
    	return etatsPlanning;
    	}
    }
    ListePlanningsEtatRequest.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @XmlRootElement(name = "root")
    public class ListePlanningsEtatRequest extends Request {
     
    	public ListePlanningsEtatRequest() {
    		super("demande_listePlanningsEtat");
    	}
    }
    la fonction listEtatPlanning

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Override
    	public ListePlanningsEtatResponse listEtatPlanning(ListePlanningsEtatRequest req) {
    		return service.send(req, ListePlanningsEtatResponse.class, DEFAULT_TIMEOUT);
    	}
    fonction send
    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
    @SuppressWarnings("unchecked")
    	@Override
    	public <R extends Response> R send(Request request, Class<R> responseClass, int timeout) throws AtCisException {
    		checkNotNull(responseClass);
     
    		Request.Description description = request != null ? request.getDescription() : null;
    		if (description == null) {
    			return null;
    		}
     
    		String req = null;
    		try {
    			req = messageConverter.marshal(request);
    		}
     
    		catch (Throwable e) {
    			logger.error(e.getMessage());
    		}
     
    		if (req == null) {
    			return null;
    		}
     
    		RequestResponseListener listener = new RequestResponseListener(description.getType());
    		addResponseListener(listener);
    		messageDispatcher.send(req);
     
    		// todo si le marshall plante, recupere l'exception
    		Object response=null;
    		try{
    			response = messageConverter.unmarshal(listener.waitForResponse(timeout), responseClass);
    		}catch (Throwable e) {
    			logger.error(e.getMessage());
    		}
     
    		if (response == null) {
    			return null;
    		}
     
    		try {
    			return (R) response;
    		}
     
    		catch (ClassCastException e) {
    			logger.error(e.getMessage());
    			return null;
    		}
    		catch (Throwable e) {
    			e.printStackTrace();
    			logger.error(e.getMessage(), e);
    			throw new AtCisTranscodeException(e);
    		}
    	}
    fonction unmarshal qui me pose problème

    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
    @SuppressWarnings("unchecked")
    	public <Resp extends Response> Resp unmarshal(String str, Class<Resp> clazz) throws AtCisTranscodeException {
     
    		if (str == null) {
    			return null;
    		}
     
    		InputStream in = null;
    		try {
    			in = new ByteArrayInputStream(str.getBytes());
    			System.out.println(str);
    			JAXBContext context = JAXBContext.newInstance(clazz);
     
    			Unmarshaller unm = context.createUnmarshaller();
    			Resp res=(Resp)unm.unmarshal(in);
    			return res;
    		}
     
    		catch (JAXBException e) {
    			e.printStackTrace();
    			logger.error(e.getMessage(), e);
    			throw new AtCisTranscodeException(e);
    		}
     
    		catch (Throwable e) {
    			e.printStackTrace();
    			logger.error(e.getMessage(), e);
    			throw new AtCisTranscodeException(e);
    		}
     
    		finally {
     
    			if (in != null) {
    				try {in.close();} catch(Exception e) {logger.debug(e.getMessage());}
    			}
    		}
    	}

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    voilà ce que renvoie ma requête en response

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<root><requete type="listePlanningsEtat"/><listePlanningsEtat><planningEtat><code>0000</code><couleur>012632256</couleur><libelle>VIERGE</libelle></planningEtat><planningEtat><code>0001</code><couleur>000054741</couleur><libelle>AM/AT pro</libelle></planningEtat><planningEtat><code>0002</code><couleur>012632256</couleur><libelle>TEST</libelle></planningEtat><planningEtat><code>0005</code><couleur>010485760</couleur><libelle>SHR 2 pro</libelle></planningEtat><planningEtat><code>0007</code><couleur>000000255</couleur><libelle>GA pro</libelle></planningEtat><planningEtat><code>0008</code><couleur>016711680</couleur><libelle>SHR 1 pro</libelle></planningEtat><planningEtat><code>0009</code><couleur>000065408</couleur><libelle>Ast 1 vol</libelle></planningEtat><planningEtat><code>0011</code><couleur>000065535</couleur><libelle>CONGES</libelle></planningEtat><planningEtat><code>0013</code><couleur>009171930</couleur><libelle>REPOS s�c</libelle></planningEtat><planningEtat><code>0016</code><couleur>000750917</couleur><libelle>alert 1 vol</libelle></planningEtat><planningEtat><code>0017</code><couleur>009961367</couleur><libelle>alert 2 vol</libelle></planningEtat><planningEtat><code>0019</code><couleur>016744703</couleur><libelle>GS vol</libelle></planningEtat><planningEtat><code>0021</code><couleur>007105791</couleur><libelle>GS pro</libelle></planningEtat><planningEtat><code>0025</code><couleur>008388736</couleur><libelle>GA vol</libelle></planningEtat><planningEtat><code>0028</code><couleur>016711935</couleur><libelle>G off SANT1 vol</libelle></planningEtat><planningEtat><code>0030</code><couleur>004227327</couleur><libelle>G off SANT2 vol</libelle></planningEtat><planningEtat><code>0031</code><couleur>007237230</couleur><libelle>Serv s�cu vol</libelle></planningEtat><planningEtat><code>0032</code><couleur>000065280</couleur><libelle>Ast 2 vol</libelle></planningEtat><planningEtat><code>0034</code><couleur>004210688</couleur><libelle>TTA 1 vol</libelle></planningEtat><planningEtat><code>0037</code><couleur>008421440</couleur><libelle>TTA 2 vol</libelle></planningEtat><planningEtat><code>0039</code><couleur>016753314</couleur><libelle>Form pro</libelle></planningEtat><planningEtat><code>0042</code><couleur>009783808</couleur><libelle>Entra� pro</libelle></planningEtat><planningEtat><code>0043</code><couleur>016769962</couleur><libelle>Entra� vol</libelle></planningEtat><planningEtat><code>0044</code><couleur>000054741</couleur><libelle>AM/AT vol</libelle></planningEtat><planningEtat><code>0045</code><couleur>000032768</couleur><libelle>Ast 1 pro</libelle></planningEtat><planningEtat><code>0046</code><couleur>000065280</couleur><libelle>SMUR 1</libelle></planningEtat><planningEtat><code>0047</code><couleur>008421376</couleur><libelle>SMUR 2</libelle></planningEtat><planningEtat><code>0048</code><couleur>016711935</couleur><libelle>DECHOCAGE</libelle></planningEtat><planningEtat><code>0049</code><couleur>016711935</couleur><libelle>GA G pro</libelle></planningEtat><planningEtat><code>0050</code><couleur>000016512</couleur><libelle>GA h�lico m�d</libelle></planningEtat><planningEtat><code>0051</code><couleur>000000064</couleur><libelle>GS h�lico m�d</libelle></planningEtat><planningEtat><code>0052</code><couleur>016625922</couleur><libelle>Form 1 vol</libelle></planningEtat><planningEtat><code>0053</code><couleur>012615680</couleur><libelle>Form 2 vol</libelle></planningEtat><planningEtat><code>0054</code><couleur>016776960</couleur><libelle>FMA 1</libelle></planningEtat><planningEtat><code>0055</code><couleur>016729156</couleur><libelle>FMA 2</libelle></planningEtat><planningEtat><code>0056</code><couleur>013434828</couleur><libelle>alert 3 vol</libelle></planningEtat><planningEtat><code>0057</code><couleur>016754943</couleur><libelle>G off CODIS</libelle></planningEtat><planningEtat><code>0058</code><couleur>011731123</couleur><libelle>G off SANTE pro</libelle></planningEtat><planningEtat><code>0059</code><couleur>016751515</couleur><libelle>SHR 3 pro</libelle></planningEtat><planningEtat><code>0060</code><couleur>000065535</couleur><libelle>Renfort Ext vol</libelle></planningEtat><planningEtat><code>0061</code><couleur>000016384</couleur><libelle>Ast 2 pro</libelle></planningEtat><planningEtat><code>0064</code><couleur>007996744</couleur><libelle>GA SUB</libelle></planningEtat><planningEtat><code>0065</code><couleur>016760319</couleur><libelle>GS SUB</libelle></planningEtat><planningEtat><code>0066</code><couleur>010135442</couleur><libelle>Ast 1 SUB</libelle></planningEtat><planningEtat><code>0067</code><couleur>000065280</couleur><libelle>Ast 2 SUB</libelle></planningEtat><planningEtat><code>0068</code><couleur>000342563</couleur><libelle>alert 1 SUB</libelle></planningEtat><planningEtat><code>0069</code><couleur>010789888</couleur><libelle>FMA 1 SUB</libelle></planningEtat><planningEtat><code>0070</code><couleur>004210688</couleur><libelle>TTA 1 SUB</libelle></planningEtat><planningEtat><code>0071</code><couleur>013959168</couleur><libelle>FMA 2 SUB</libelle></planningEtat><planningEtat><code>0072</code><couleur>011184725</couleur><libelle>TTA 2 SUB</libelle></planningEtat><planningEtat><code>0073</code><couleur>007237230</couleur><libelle>Serv s�cu pro</libelle></planningEtat><planningEtat><code>0074</code><couleur>000065535</couleur><libelle>Renfort Ext pro</libelle></planningEtat><planningEtat><code>0075</code><couleur>000054741</couleur><libelle>AM/AT pro</libelle></planningEtat><planningEtat><code>0076</code><couleur>000032896</couleur><libelle>FMA  FORMATEUR</libelle></planningEtat></listePlanningsEtat></root>"
    je recupère bien mes données, mais au moment de unmarshal je catch un NullPointer que je c'est d'où il vinet

    Merci

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    Bonjour,
    J'ai toujours le même problème ça fait plus d'une semiane

    Voilà une partie du fichier xml
    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
     
    <xsd:complexType name="typeListePlanningsEtat">
     <xsd:sequence>
     <xsd:element name="planningsEtat" minOccurs="0" maxOccurs="unbounded">
     <xsd:complexType>
           <xsd:sequence>
                     <xsd:element name="code">
                            <xsd:simpleType>
                                     <xsd:restriction base="xsd:integer">
                                               <xsd:minInclusive value="0"/>
                                               <xsd:maxInclusive value="99999"/>
                                    </xsd:restriction>
                            </xsd:simpleType>
                      </xsd:element>
                      <xsd:element name="libelle" type="xsd:string"/>
                       <xsd:element name="couleur">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:integer">
                                            <xsd:minInclusive value="0"/>
                                            <xsd:maxInclusive value="9999999999"/>
                                   </xsd:restriction>
                                </xsd:simpleType>
                      </xsd:element>
                   </xsd:sequence>
     </xsd:complexType>
     </xsd:element>
     </xsd:sequence>
     </xsd:complexType>
    et voilà la représentaion de PlannigEtat en Objet (JavaFX)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class PlanningEtat {
     
    	private StringProperty code=new SimpleStringProperty();
    	private StringProperty couleur=new SimpleStringProperty();
    	private StringProperty libelle=new SimpleStringProperty();
     
                        //...
    Merci pour votre aide

  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 : 45
    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
    je ne vois pas d'erreur flagrante dans le xml. Tout ce que je peux te suggérer, c'est de mettre un breakpoint sur cette erreur, et de regarder, pour chaque méthode de l'appel quelles sont les données en cours de traitement, afin de savoir qu'est-ce qui est null, déterminer à quel moment il aurait du être initialisé et essayer ensuite de déterminer pourquoi il n'a pas été initialisé....

    Bon amusement, c'est une journée complète de galère ce genre de débugage

  9. #9
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    @javast
    Vous devriez verifier si le xsd a raison avec
    <xsd:element name="planningsEtat" minOccurs="0" maxOccurs="unbounded">
    ou bien les classes générées manuellement ou auto ont.
    public class PlanningEtat {
    et ailleurs...
    <listePlanningsEtat>
    <planningEtat>
    <code>0000</code>
    <couleur>012632256</couleur>
    <libelle>VIERGE</libelle>
    </planningEtat>
    etc etc...

    Et puis, cet accesseur getPalnningEtat() ne devrait pas correct.
    @XmlElementWrapper(name = "listePlanningsEtat")
    @XmlElement(name = "planningEtat")
    public List<PlanningEtat> getPalnningEtat() {
    return etatsPlanning;
    }
    edition
    Juste avoir un autre regard rapid sur le schéma: il est évident si la requete montrée est bon, il faut aussi mettre la définition de "libelle" après celle de "couleur", ou bien, la requete montrée n'serait pas valide. Comment est-elle générée sinon automatique?!

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    Citation Envoyé par tsuji Voir le message
    @javast
    Vous devriez verifier si le xsd a raison avec

    ou bien les classes générées manuellement ou auto ont.

    et ailleurs...

    etc etc...

    Et puis, cet accesseur getPalnningEtat() ne devrait pas correct.


    edition
    Juste avoir un autre regard rapid sur le schéma: il est évident si la requete montrée est bon, il faut aussi mettre la définition de "libelle" après celle de "couleur", ou bien, la requete montrée n'serait pas valide. Comment est-elle générée sinon automatique?!
    Bonjour,
    Je te remércie pour ta réponse, j'ai essayé de valider xsd avec le xml et j'ai eu cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The element 'listePlanningsEtat' has invalid child element 'planningEtat'. List of possible elements expected:
    Je voie pas trop ce que cela veut dire?

  11. #11
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    The element 'listePlanningsEtat' has invalid child element 'planningEtat'.
    Evidemment, et c'est ce que je voulais dire aussi. Dans le schéma, vous avez/tu as
    <xsd:element name="planningsEtat" minOccurs="0" maxOccurs="unbounded">
    planningsEtat avec un s. Or, les classes avec des annotations vous avez
    @XmlElementWrapper(name = "listePlanningsEtat")
    @XmlElement(name = "planningEtat")
    public List<PlanningEtat> getPalnningEtat() {
    return etatsPlanning;
    }
    planningEtat sans s, ....

    Et les restent assez intermélés que j'ai signalés...

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Evidemment, et c'est ce que je voulais dire aussi. Dans le schéma, vous avez/tu as

    planningsEtat avec un s. Or, les classes avec des annotations vous avez

    planningEtat sans s, ....

    Et les restent assez intermélés que j'ai signalés...
    au fait je me suis trompé, il n'y a pas de schéma xsq ni de fichier xml, ce dérnier est écrit en dût côté serveur, j'envoie la requête à la machine , elle se connecte dans la base pour recupérer les données , une fois c'est fait elle stocke les données sous forme de xml en dûr ellle me renvoie le résultat, moi je rècupère les données en xml et je dois les transformer en objet java et c'est là ou ça plante

    voilà ce que je reçois
    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
     
    <root><requete type="listePlanningsEtat"/>
    <listePlanningsEtat>
    <planningEtat><code>0000</code><couleur>012632256</couleur><libelle>VIERGE</libelle></planningEtat>
    <planningEtat><code>0001</code><couleur>000054741</couleur><libelle>AM/AT pro</libelle></planningEtat>
    <planningEtat><code>0002</code><couleur>012632256</couleur><libelle>TEST</libelle></planningEtat>
    <planningEtat><code>0005</code><couleur>010485760</couleur><libelle>SHR 2 pro</libelle></planningEtat>
    <planningEtat><code>0007</code><couleur>000000255</couleur><libelle>GA pro</libelle></planningEtat>
    <planningEtat><code>0008</code><couleur>016711680</couleur><libelle>SHR 1 pro</libelle></planningEtat>
    <planningEtat><code>0009</code><couleur>000065408</couleur><libelle>Ast 1 vol</libelle></planningEtat>
    <planningEtat><code>0011</code><couleur>000065535</couleur><libelle>CONGES</libelle></planningEtat>
    <planningEtat><code>0013</code><couleur>009171930</couleur><libelle>REPOS s�c</libelle></planningEtat>
    <planningEtat><code>0016</code><couleur>000750917</couleur><libelle>alert 1 vol</libelle></planningEtat>
    <planningEtat><code>0017</code><couleur>009961367</couleur><libelle>alert 2 vol</libelle></planningEtat>
    <planningEtat><code>0019</code><couleur>016744703</couleur><libelle>GS vol</libelle></planningEtat>
    <planningEtat><code>0021</code><couleur>007105791</couleur><libelle>GS pro</libelle></planningEtat>
    <planningEtat><code>0025</code><couleur>008388736</couleur><libelle>GA vol</libelle></planningEtat>
    <planningEtat><code>0028</code><couleur>016711935</couleur><libelle>G off SANT1 vol</libelle></planningEtat>
    <planningEtat><code>0030</code><couleur>004227327</couleur><libelle>G off SANT2 vol</libelle></planningEtat>
    <planningEtat><code>0031</code><couleur>007237230</couleur><libelle>Serv s�cu vol</libelle></planningEtat>
    <planningEtat><code>0032</code><couleur>000065280</couleur><libelle>Ast 2 vol</libelle></planningEtat>
    <planningEtat><code>0034</code><couleur>004210688</couleur><libelle>TTA 1 vol</libelle></planningEtat>
    <planningEtat><code>0037</code><couleur>008421440</couleur><libelle>TTA 2 vol</libelle></planningEtat>
    <planningEtat><code>0039</code><couleur>016753314</couleur><libelle>Form pro</libelle></planningEtat>
    <planningEtat><code>0042</code><couleur>009783808</couleur><libelle>Entra� pro</libelle></planningEtat>
    <planningEtat><code>0043</code><couleur>016769962</couleur><libelle>Entra� vol</libelle></planningEtat>
    <planningEtat><code>0044</code><couleur>000054741</couleur><libelle>AM/AT vol</libelle></planningEtat>
    <planningEtat><code>0045</code><couleur>000032768</couleur><libelle>Ast 1 pro</libelle></planningEtat>
    <planningEtat><code>0046</code><couleur>000065280</couleur><libelle>SMUR 1</libelle></planningEtat>
    <planningEtat><code>0047</code><couleur>008421376</couleur><libelle>SMUR 2</libelle></planningEtat>
    <planningEtat><code>0048</code><couleur>016711935</couleur><libelle>DECHOCAGE</libelle></planningEtat>
    <planningEtat><code>0049</code><couleur>016711935</couleur><libelle>GA G pro</libelle></planningEtat>
    <planningEtat><code>0050</code><couleur>000016512</couleur><libelle>GA h�lico m�d</libelle></planningEtat>
    <planningEtat><code>0051</code><couleur>000000064</couleur><libelle>GS h�lico m�d</libelle></planningEtat>
    <planningEtat><code>0052</code><couleur>016625922</couleur><libelle>Form 1 vol</libelle></planningEtat>
    <planningEtat><code>0053</code><couleur>012615680</couleur><libelle>Form 2 vol</libelle></planningEtat>
    <planningEtat><code>0054</code><couleur>016776960</couleur><libelle>FMA 1</libelle></planningEtat>
    <planningEtat><code>0055</code><couleur>016729156</couleur><libelle>FMA 2</libelle></planningEtat>
    <planningEtat><code>0056</code><couleur>013434828</couleur><libelle>alert 3 vol</libelle></planningEtat>
    <planningEtat><code>0057</code><couleur>016754943</couleur><libelle>G off CODIS</libelle></planningEtat>
    <planningEtat><code>0058</code><couleur>011731123</couleur><libelle>G off SANTE pro</libelle></planningEtat>
    <planningEtat><code>0059</code><couleur>016751515</couleur><libelle>SHR 3 pro</libelle></planningEtat>
    <planningEtat><code>0060</code><couleur>000065535</couleur><libelle>Renfort Ext vol</libelle></planningEtat>
    <planningEtat><code>0061</code><couleur>000016384</couleur><libelle>Ast 2 pro</libelle></planningEtat>
    <planningEtat><code>0064</code><couleur>007996744</couleur><libelle>GA SUB</libelle></planningEtat>
    <planningEtat><code>0065</code><couleur>016760319</couleur><libelle>GS SUB</libelle></planningEtat>
    <planningEtat><code>0066</code><couleur>010135442</couleur><libelle>Ast 1 SUB</libelle></planningEtat>
    <planningEtat><code>0067</code><couleur>000065280</couleur><libelle>Ast 2 SUB</libelle></planningEtat>
    <planningEtat><code>0068</code><couleur>000342563</couleur><libelle>alert 1 SUB</libelle></planningEtat>
    <planningEtat><code>0069</code><couleur>010789888</couleur><libelle>FMA 1 SUB</libelle></planningEtat>
    <planningEtat><code>0070</code><couleur>004210688</couleur><libelle>TTA 1 SUB</libelle></planningEtat>
    </listePlanningsEtat></root>

Discussions similaires

  1. [JDBC][STATEMENT] NullPointerException
    Par syvid dans le forum JDBC
    Réponses: 2
    Dernier message: 23/03/2005, 00h29
  2. [Débutant]NullPointerException
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2004, 13h58
  3. [Exception]Double buffering & NullPointerException
    Par Seiya dans le forum API standards et tierces
    Réponses: 25
    Dernier message: 09/07/2004, 18h41
  4. Heritage et NullPointerException
    Par Assiobal dans le forum Langage
    Réponses: 6
    Dernier message: 18/06/2004, 16h35
  5. JPanel & getGraphics() : NullPointerException
    Par dingoth dans le forum Composants
    Réponses: 7
    Dernier message: 21/05/2004, 15h56

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