2010-10-05 5 views
2

Est-ce que quelqu'un a déjà reçu EclipseLink MOXy (j'utilise eclipselink 2.1.0) pour travailler avec Java 5? Chaque fois que j'essaie de démashaler je reçois une exception null pointeur dans org.eclipse.persistence.oxm.record.UnmarshalRecord, dans la méthode startCDATA() (xPathNode est null). Le même code et le code XML fonctionnent merveilleusement dans Java6.Utilisation d'EclipseLink MOXy avec Java 1.5

+0

j'ai pu reproduire constamment en essayant de désorganiser un fichier xml contenant un noeud CDATA, mais n'a pas eu un getter java correspondant et compositeur. Si le noeud n'était pas un noeud cdata alors tout fonctionnait bien, ce noeud était juste passé dans unmarshalling (ce que je pensais). Cela semble seulement se produire dans Java5, pas Java6. – Frothy

Répondre

1

Je suis le responsable technique de MOXy. Pouvez-vous fournir la trace de pile & plus de détails sur votre cas d'utilisation?

Pour plus d'informations sur Moxy consultez:

Re votre mise à jour:

Je n'ai pas été en mesure de reproduire sur mon fin. J'utilise le suivant env. Avez-vous un test que vous pouvez envoyer ([email protected]) ou indiquer ce que je fais différemment ?:

  • JDK: 1.5.0_22
  • EclipseLink 2.1.0

Le modèle suivant:

package cdata; 

import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Customer { 

    private String firstName; 
    private String lastName; 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

} 

code de démonstration:

package cdata; 

import java.io.File; 

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.Marshaller; 
import javax.xml.bind.Unmarshaller; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     JAXBContext jc = JAXBContext.newInstance(Customer.class); 

     Unmarshaller unmarshaller = jc.createUnmarshaller(); 
     Customer customer = (Customer) unmarshaller.unmarshal(new File("src/cdata/input.xml")); 

     Marshaller marshaller = jc.createMarshaller(); 
     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
     marshaller.marshal(customer, System.out); 
    } 
} 

Et XML:

<?xml version="1.0" encoding="UTF-8"?> 
<customer> 
    <firstName>Jane</firstName> 
    <middleName><![CDATA[<?xml version="1.0"?>]]></middleName> 
    <lastName>Doe</lastName> 
</customer> 
+0

Merci de vérifier si vite! Je l'ai compris. J'ajoutais EclipseLink via Maven et je n'avais pas les dépendances requises incluses dans la version disponible pour le téléchargement ajoutée à mon projet (ou pas toutes au moins). Une fois que j'ai eu ce réparé tout a fonctionné comme un charme! – Frothy

+0

On dirait que j'ai sauté le pistolet en appelant cela fixe ... J'ai ajouté des détails à l'article original. – Frothy

+0

Je n'ai pas encore pu le reproduire. J'ai mis à jour ma réponse avec ce que j'ai essayé. Pouvez-vous fournir des détails sur ce que je pourrais faire de différent de vous? –

Questions connexes