2010-12-10 13 views
44

Bir WCF web hizmeti kullanmak için CXF kullanarak bir web hizmeti istemcisi oluşturmaya çalışıyorum. wsdl2java kullandığımda, String yerine JAXBElement türlerine sahip nesneler oluşturur.JAXBElement <String>'un bir CXF Web Service istemcisi tarafından oluşturulmasını nasıl önleyebilirim?

Bir düzeltmeyi denemek için generateElementProperty = "false" değerini ayarlamak için bir jaxb bindings.xml dosyası kullanmayı okudum, ancak tüketmekte olduğum web hizmeti 7 alınan şema içeriyor.

Yedi şemada generateElementProperty="false"'u nasıl belirleyebilirim veya tüm şemalara uygulamak için bir yol var mı?

cevap

60

Sen, bu küresel olarak uygulanan alacak aşağıdaki gibi bağlayıcı bir dosya oluşturmak ve wsdl2java olarak kullanmak zorunda - "bindings.txt" "wsdl"

<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> 
+7

http://cxf.apache.org b /docs/maven-cxf-codegen-plugin-wsdl-to-java.html maven eklentisini kullanarak bir bağlama dosyasının nasıl ayarlanacağı hakkında talimatlar için. – ScArcher2

+1

Neden onun varsayılan davranış olmadığını merak ediyorum. – axk

+1

http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/ Burada önerildiği gibi .xml'or '.xjb' gibi eşleme dosyası için daha spesifik bir dosya uzantısı kullanmak daha iyi olacaktır. 2.0/tutorial/doc/JAXBUsing4.html # wp148366 – schnatterer