web-dev-qa-db-fra.com

Comment instancier un objet JAXBElement <String>?

J'ai besoin d'en créer un, car l'interface l'exige ... quelqu'un peut-il me dire comment en créer un, car il ne semble pas y avoir de c'tor défini?

106
miguel

Lorsque vous importez le WSDL, vous devriez avoir une classe ObjectFactory qui devrait avoir un tas de méthodes pour créer divers paramètres d’entrée.

ObjectFactory factory = new ObjectFactory();
JAXBElement<String> createMessageDescription = factory.createMessageDescription("description");
message.setDescription(createMessageDescription);
163
Gaurav

Voici comment je le fais. Vous devrez obtenir l'URL de l'espace de noms et le nom de l'élément à partir du code généré.

new JAXBElement(new QName("http://www.novell.com/role/service","userDN"),
                new String("").getClass(),testDN);
6
JC.
ObjectFactory fact = new ObjectFactory();   
JAXBElement<String> str = fact.createCompositeTypeStringValue("vik");    
comp.setStringValue(str);
CompositeType retcomp = service.getDataUsingDataContract(comp);
System.out.println(retcomp.getStringValue().getValue());
5
vik

Je ne sais pas pourquoi vous pensez qu'il n'y a pas de constructeur. Voir l'API .

2
Matthew Flaschen

Autre alternative:

JAXBElement<String> element = new JAXBElement<>(new QName("Your localPart"),
                                                String.class, "Your message");

Ensuite:

System.out.println(element.getValue()); // Result: Your message
1
alditis