Bagaimana cara membuat instance objek JAXBElement <String>?

120

Saya perlu membuat salah satu dari ini karena antarmuka memerlukannya ... dapatkah seseorang memberi tahu saya cara membuatnya, karena sepertinya tidak ada c'tor yang ditentukan?

miguel
sumber

Jawaban:

179

Saat Anda mengimpor WSDL, Anda harus memiliki ObjectFactorykelas yang seharusnya memiliki banyak metode untuk membuat berbagai parameter input.

ObjectFactory factory = new ObjectFactory();
JAXBElement<String> createMessageDescription = factory.createMessageDescription("description");
message.setDescription(createMessageDescription);
Gaurav
sumber
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());
vik
sumber
7

Inilah cara saya melakukannya. Anda harus mendapatkan URL namespace dan nama elemen dari kode yang Anda buat.

new JAXBElement(new QName("http://www.novell.com/role/service","userDN"),
                new String("").getClass(),testDN);
JC.
sumber
6
Lebih baik menggunakan kelas ObjectFactory seperti yang disebutkan di bawah ini daripada menggunakan konstruktor JAXBElement
Harish
3

Alternatif lain:

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

Kemudian:

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

Saya tidak tahu mengapa Anda berpikir tidak ada konstruktor. Lihat API .

Matthew Flaschen
sumber