в нашем проекте мы генерируем классы pojo из файлов wsdl, используя gradle.Это выглядит так (важные биты):
dependencies {
compile project(':util')
compile ("org.apache.cxf:cxf-rt-frontend-jaxws:$apachecxfVersion") {
exclude group: 'asm'
}
compile "org.apache.cxf:cxf-rt-transports-http:$apachecxfVersion"
compile "org.apache.cxf:cxf-rt-transports-http-jetty:$apachecxfVersion"
compile "org.apache.cxf:cxf-tools-common:$apachecxfVersion"
wsgen "org.apache.cxf:cxf-tools-wsdlto-core:$apachecxfVersion"
wsgen "org.apache.cxf:cxf-tools-wsdlto-frontend-jaxws:$apachecxfVersion"
wsgen "org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb:$apachecxfVersion"
jaxb "com.sun.xml.bind:jaxb-xjc:$jaxbVersion"
jaxb "com.sun.xml.bind:jaxb-impl:$jaxbVersion"
jaxb "javax.xml.bind:jaxb-api:$jaxbVersion"
}
tasks.create(name: "gen_wsbindings") {
compileJava.dependsOn xjc
ext.genDirName = "$buildDir/gen.wsdls.src"
inputs.dir new File(srcDir)
outputs.dir new File(ext.genDirName)
doFirst {
new File(ext.genDirName).mkdirs()
}
doLast {
fileTree(dir: srcDir + "/wsdl", include: "**/*.wsdl", exclude: "xxx.wsdl").each { def wsdlFile ->
println "compiling WSDL " + wsdlFile.name
javaexec {
main = 'org.apache.cxf.tools.wsdlto.WSDLToJava'
classpath = configurations.wsgen
args '-fe', 'jaxws',
'-db', 'jaxb',
'-xjc-extension',
'-asyncMethods',
'-b', srcDir + '/jaxb/jaxws-binding.xml',
'-b', srcDir + '/jaxb/jxb-binding.xml',
'-impl', '-server', '-client',
'-validate',
'-autoNameResolution',
'-d', ext.genDirName,
'-wsdlLocation', 'classpath:wsdl/' + wsdlFile.name,
wsdlFile
}
}
}
}
Я пытался вставить '-xjc-XhashCode', '-xjc-Xequals'
в аргументы процесса wsdlToJava, но я получаю это сообщение об ошибке: WSDLToJava Error: XJC reported 'BadCommandLineException' for -xjc argument:-extension -extension -XhashCode
.
Do Iнужно добавить некоторую зависимость?Спасибо