Ant

2010-02-01 32 views
21

denilen wsimport tarafından oluşturulan sınıflarda JAXBElement kurtulun Aşağıdaki soruna sahibim: Bir web servis sunucusu oluşturmak için wsimport ant görevini kullanıyorum (salesforce.com için). Her şey iyi çalışıyor, ancak oluşturulan sınıfların hepsi, tüm fason özellikleri için bu garip JAXBElement sınıfını kullanıyor.Ant

Örn:

public void setLastName(JAXBElement<String> value) { 
    this.lastName = ((JAXBElement<String>) value); 
} 

public JAXBElement<String> getCountry() { 
    return country; 
} 

Onun yerine setLastName (Dize newLastName) gibi basit yöntemleri var istiyorum JAXBElement tüm sınıfları sarılması. Wsimport görevini böyle çağırıyorum.

herkes ederim o kadar wsimport sınıfları istediğim gibi üretir belirlemek zorunda biliyor mu:

<wsimport debug="false" verbose="false" keep="${keep}" 
    extension="${extension}" destdir="${tmp.metro}" 
    wsdl="${licensing.wsdl}" 
    sourcedestdir="${licensingws.generated.src}" 

    > 

    <binding dir="${basedir}/etc" includes="${client.binding}" 
    /> 
    <arg value="-B-XautoNameResolution" /> 

    </wsimport> 

görev bu şekilde tanımlanır? Şimdiden çok teşekkürler !!!

cevap

25

oluşturulan fasulye JAXBElement sarmalayıcılarını kullanılmasının nedeni WSDL alan isteğe ve nillable ikisi birden olmak beyan eder, muhtemelen. "Mevcut değil" ve "şimdiki, ancak null" arasında ayrım yapmak için, her iki durumda da String boş olacağından, String türü doğrudan kullanılamaz. Eğer iki durum birbirinden ayırt etmek gerekmiyorsa

, sen configure the code generator yerine dize türünü kullanmak olabilir. Bunu ant göreviyle nasıl yapacağınızdan% 100 emin değilim, ama muhtemelen ilgili bilgiyi ant görev belgelerinde bulabilirsiniz.

+7

teşekkürler, bu bağlayıcı dosyasını kullanarak bunu çözdü: şöyle build.xml ilan: \t \t \t \t \t \t \t \t \t \t \t MisterY

+0

sayesinde bana JAXWS bağlamaları dosyasını yapılandırmak için zaman –

+1

çok kaydedilmiş da içerdiğinden bu bağlantıya bakın : //metro.1045641.n5.nabble.com/Generated-Code-with-minOccurs-0-and-nillable-true-contains-JAXBElement-tp1063625p1063626.html – GWTNewbie

0

Benzer sorunla karşılaştım.

bende tavan wsimport iken bağlama XML aşağıda kullandık: Bu link referans ile.

Bağlanma dosya

<jaxb:bindings version="2.1" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <jaxb:globalBindings generateElementProperty="false"/> 
</jaxb:bindings> 

Örnek wsimport komutu:

wsimport -keep <WSDL_location> -b employerServiceWSD 
L_binding.xjb 

Not: employerServiceWSDL_binding.xjb XML giriş bağlanma yukarıdaki içerir.

aynı zamanda diğer için çalışacak Umut.