ฉันจะสร้างอินสแตนซ์วัตถุ JAXBElement <String> ได้อย่างไร


121

ฉันต้องการสร้างสิ่งเหล่านี้ตามที่อินเทอร์เฟซต้องการ ... ใครช่วยบอกวิธีสร้างได้ไหมเนื่องจากดูเหมือนจะไม่มีการกำหนดหรือกำหนดไว้

คำตอบ:


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
Harish

3

ทางเลือกอื่น:

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

แล้ว:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.