Как создать экземпляр объекта JAXBElement <String>?

121

Мне нужно создать один из них, поскольку этого требует интерфейс ... Кто-нибудь, пожалуйста, дайте мне знать, как создать его, поскольку, похоже, не определен c'tor?

Мигел
источник

Ответы:

181

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

ObjectFactory factory = new ObjectFactory();
JAXBElement<String> createMessageDescription = factory.createMessageDescription("description");
message.setDescription(createMessageDescription);
Gaurav
источник
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);
JC.
источник
6
Лучше использовать класс ObjectFactory, как указано ниже, а не конструктор JAXBElement
Хариш
3

Другая альтернатива:

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

Затем:

System.out.println(element.getValue()); // Result: Your message
alditis
источник
2

Я не знаю, почему вы думаете, что конструктора нет. См. API .

Мэтью Флашен
источник