Wie instanziiere ich ein JAXBElement <String> -Objekt?


120

Ich muss eine davon erstellen, wie es die Schnittstelle erfordert ... kann mir bitte jemand mitteilen, wie eine erstellt wird, da anscheinend kein c'tor definiert ist?

Antworten:


179

Wenn Sie die WSDL importiert haben, sollten Sie über eine ObjectFactoryKlasse verfügen, die eine Reihe von Methoden zum Erstellen verschiedener Eingabeparameter enthält.

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

Hier ist, wie ich es mache. Sie müssen die Namespace-URL und den Elementnamen aus Ihrem generierten Code abrufen.

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

6
Es ist besser, die ObjectFactory-Klasse wie unten erwähnt zu verwenden, als den JAXBElement-Konstruktor
Harish

3

Andere Alternative:

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

Dann:

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.