在Gradle中使用Axis1.4的wsdl2java
我搜索了插件和教程,但它们都不适用于给定的上下文: 我想从给定WSDL文件列表生成服务器端Java类。它们必须使用Axis1.4和Java1.7生成 我的半工作代码如下:在Gradle中使用Axis1.4的wsdl2java,gradle,ant,axis,Gradle,Ant,Axis,我搜索了插件和教程,但它们都不适用于给定的上下文: 我想从给定WSDL文件列表生成服务器端Java类。它们必须使用Axis1.4和Java1.7生成 我的半工作代码如下: configurations { axisGenAntTask } task genWsdlClasses() { doLast { def wsdlDir = file(axisInputDir) def wsdlFiles = new FileNameByRegexFind
configurations {
axisGenAntTask
}
task genWsdlClasses() {
doLast {
def wsdlDir = file(axisInputDir)
def wsdlFiles = new FileNameByRegexFinder().getFileNames("${wsdlDir}", /.*\.wsdl/)
wsdlFiles.each { String wsdlFile ->
ant.echo(message: "Generating Classes for use with WSDL")
ant.taskdef(
name: "genClassesFromWSDL",
classname: "org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask",
classpath: configurations.axisGenAntTask.asPath
)
ant.genClassesFromWSDL(
url: wsdlFile,
output: file(cxfOutputDir)
)
}
}
}
tasks.withType(JavaCompile) {
dependsOn genWsdlClasses
}
dependencies {
axisGenAntTask "org.apache.axis:axis-ant:1.4",
"org.apache.axis:axis:1.4",
"org.apache.axis:axis-jaxrpc:1.4",
"axis:axis-wsdl4j:1.5.1",
"commons-codec:commons-codec:1.3",
"commons-logging:commons-logging:1.1.1",
"commons-discovery:commons-discovery:0.2"
}
但是,生成的CustomException类不会扩展Exception
,因此它不可丢弃,Java代码编译也不起作用(请参见此处的类似问题:)
不知何故,我不得不告诉ant.taskdef不要“解包”类,正如我在参考的SO问题中所读到的那样,但是提到的参数来自轴2,而不是所需的轴1.4