Bir JAXBElement <String> nesnesini nasıl başlatırım?


120

Arayüz gerektirdiğinden bunlardan birini oluşturmam gerekiyor ... bir c'tor tanımlı görünmediğinden biri nasıl oluşturulacağını bana bildirebilir mi?

Yanıtlar:


179

WSDL'yi içe aktardığınızda, ObjectFactoryçeşitli girdi parametreleri oluşturmak için birçok yönteme sahip bir sınıfa sahip olmalısınız.

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

İşte bunu nasıl yapıyorum. Oluşturulan kodunuzdan ad alanı URL'sini ve öğe adını almanız gerekecektir.

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

6
JAXBElement yapıcısını kullanmak yerine aşağıda belirtildiği gibi ObjectFactory sınıfını kullanmak daha iyidir
Harish

3

Diğer alternatif:

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

Sonra:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.