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


121

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

Ответы:


181

Когда вы импортировали 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
Хариш

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.