Làm cách nào để tạo đối tượng JAXBElement <String>?


120

Tôi cần tạo một trong những cái này vì giao diện yêu cầu ... ai đó có thể vui lòng cho tôi biết cách tạo một cái này không, vì dường như không có định nghĩa nào?

Câu trả lời:


179

Khi bạn nhập WSDL, bạn nên có một ObjectFactorylớp sẽ có nhiều phương thức để tạo các tham số đầu vào khác nhau.

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

Đây là cách tôi làm điều đó. Bạn sẽ cần lấy URL không gian tên và tên phần tử từ mã đã tạo của bạn.

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

6
Tốt hơn là sử dụng lớp ObjectFactory như được đề cập bên dưới hơn là sử dụng phương thức khởi tạo JAXBElement
Harish

3

Thay thế khác:

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

Sau đó:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.