2011-03-30 20 views
7

Ben Maven için cxf-codegen-eklentisi kullanarak benim wsdl/xsd yıllardan gelen sunucu/istemci üretir. Yaratılan tüm türlerin varsayılan olarak no-arg-constructors var, bu da onlara çalışmak için acı veriyor.Can ApacheCXF, Maven için cxf-codegen-plugin kullanırken tam kurucular üretir mi?

argüman olarak sınıfının tüm üyeleri ile Apache CXF tam yapıcı içerisinde muhtelif oluşturmak yapmak için herhangi bir yolu var mı?

+0

Aynı sorunla karşı karşıyayım. Bir çözüm bulduysanız lütfen yorum yapın. – heldt

cevap

6

Bu eklenti XJC etrafında sadece bir fantezi sarıcı.

senin sorunun alanı ilgilendiren iki XJC eklentileri vardır: Aradığınız tam olarak ne

  • Value-constructor.
  • Fluent-api
  • Aradığınız değil tam olarak ne, ancak birçok değer yapıcıları için akıcı API tercih ederim.

Gerekli bağımlılıkları eklemeniz ve sonra bu eklentileri xjc, ör.

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <configuration> 
    <defaultOptions> 
     <extraargs> 
     <extraarg>-xjc-Xvalue-constructor</extraarg> 
     </extraargs> 
    </defaultOptions> 
    </configuration> 
    <dependencies> 
    <dependency> 
     <groupId>org.jvnet.jaxb2_commons</groupId> 
     <artifactId>jaxb2-value-constructor</artifactId> 
     <version>3.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jvnet.jaxb2_commons</groupId> 
     <artifactId>jaxb2-basics</artifactId> 
     <version>0.6.4</version> 
    </dependency> 
    </dependencies> 
</plugin> 

Not: yalnızca o özgü yürütme içine <configuration> biraz eklemek, yalnızca belirli bir yürütme için olanlar seçenekleri etkinleştirmek istiyorsanız, yukarıdaki tüm infazların için bu varsayılan yapar.

+0

Teşekkürler! maven-jaxb2-eklentisi: Daha önce ben 'org.jvnet.jaxb2.maven2 ile' cxf-XJC-plugin' uzatmak için çalışıyordu 0.8.2' ve başarısız ancak örnek ile, ben 'kullanarak gerektiğini netleşti org .jvnet.jaxb2_commons: jaxb2-temel özellikleri: 0.6.4' – pulkitsinghal

+0

Teşekkürler. Sağlanan iki bağlantı için bir hareket bildirimi aldım. Onları suçlamak için çalıştı, ama sadece kod ile sadece github repos almak için? – eugenevd