Як я можу створити об'єкт JAXBElement <String>?


120

Мені потрібно створити одне з них, оскільки цього вимагає інтерфейс ... може хтось, будь ласка, дайте мені знати, як його створити, оскільки, здається, не визначено c'tor?

Відповіді:


179

Коли ви імпортували WSDL, у вас повинен бути ObjectFactoryклас, який повинен мати купу методів створення різних вхідних параметрів.

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

Ось як я це роблю. Вам потрібно буде отримати URL-адресу простору імен та ім’я елемента із створеного коду.

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

6
Краще використовувати клас ObjectFactory, як було зазначено нижче, ніж використовувати конструктор JAXBElement
Harish

3

Інша альтернатива:

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

Тоді:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.