Bonjour a tous,

J'essaye de unmarshaller du xml avec jaxb dans talend ESB.

Quand je builde la route dans Talend-RUNTIME j'ai l'erreur suivante :

Beans.test do not contain ObjectFactory.class or jaxb.inde.

Pour se faire j'utilise le composant cJavaDSLProcessor avec le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
.unmarshal().jaxb("beans.test")
Dans mon bean test j'ai deux classe java.

ObjectFactory :

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
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;
 
@XmlRegistry
public class ObjectFactory {
 
    private final static QName _Test_QNAME = new QName("", "test");
 
    public ObjectFactory() {
    }
 
    public Test createTest() {
        return new Test();
    }
 
    @XmlElementDecl(namespace = "", name = "test")
    public JAXBElement<Test> createTest(Test value) {
        return new JAXBElement<Test>(_Test_QNAME, Test.class, null, value);
    }
}
Et Test :

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
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
 
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "test", propOrder = {
    "nom",
    "numCommande"})
 
public class Test {
 
    @XmlElement(required = true)
    protected String nom;
    @XmlElement(required = true)
    protected String numCommande;
 
    public String getNom() {
        return nom;
    }
 
    public void setNom(String value) {
        this.nom = value;
    }
 
    public String getNumCommande() {
        return numCommande;
    }
 
    public void setNumCommande(String value) {
        this.numCommande = value;
    }
}
Je n'arrive pas a résoudre cette erreur je viens donc vous demandé de l'aide .

Cdt,

Takago.