Come si crea un'istanza di un oggetto JAXBElement <String>?


120

Devo crearne uno perché l'interfaccia lo richiede ... qualcuno può farmi sapere come crearne uno, poiché non sembra esserci un c'tor definito?

Risposte:


179

Quando hai importato WSDL, dovresti avere una ObjectFactoryclasse che dovrebbe avere un sacco di metodi per creare vari parametri di input.

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

7
ObjectFactory fact = new ObjectFactory();   
JAXBElement<String> str = fact.createCompositeTypeStringValue("vik");    
comp.setStringValue(str);
CompositeType retcomp = service.getDataUsingDataContract(comp);
System.out.println(retcomp.getStringValue().getValue());

7

Ecco come lo faccio. Sarà necessario ottenere l'URL dello spazio dei nomi e il nome dell'elemento dal codice generato.

new JAXBElement(new QName("http://www.novell.com/role/service","userDN"),
                new String("").getClass(),testDN);

6
È meglio usare la classe ObjectFactory come indicato di seguito piuttosto che utilizzare il costruttore JAXBElement
Harish

3

Altra alternativa:

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

Poi:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.