JavaToWS 错误 : java. lang.NoClassDefFoundError

标签 java gradle cxf

我正在使用 CXF JavaToWS 基于我的 Java 代码创建 WSDL 文件。我正在使用 Gradle 进行构建。我的 Java 代码引用了另一个项目,我通过 settings.gradle 和 build.gradle 文件将它们绑定(bind)在一起。这一切都运行良好。

我看到的问题是 JavaToWS 在辅助项目中的其中一个类上出现 NoClassDefFoundError 错误。这几乎就像 JavaToWS 无法访问项目的类路径一样。 Eclipse 找到了它需要的一切,并且项目构建没有错误。只是 JavaToWS 步骤失败了。关于如何让 JavaToWS 查看我的类路径有什么想法吗?有没有一种方法可以将多个参数传递给“-cp”参数?

这是我的 gradle.build 文件中的 JavaToWS 步骤:

task java2ws(type: JavaExec) {

    ext {
        outputDir = file("src/main/java")
        mainDir = file("$buildDir/classes/main")
        wsdlDir = file("src/main/resources/wsdl")
    }

    main = 'org.apache.cxf.tools.java2ws.JavaToWS'

    classpath = configurations.cxf

    // Arguments to be passed to JavaToWS.
    args '-cp', mainDir
    args '-s', outputDir
    args '-d', wsdlDir
    args '-classdir', mainDir
    args '-o', 'MyService.wsdl'
    args '-createxsdimports' 
    args '-verbose'
    args '-frontend', 'jaxws'
    args '-databinding', 'jaxb'
    args '-wsdl'
    args '-wrapperbean', 'com.foo.MyService'    
}

最佳答案

我能够通过更改类路径行来解决此问题:

classpath = configurations.cxf

至:

classpath = files(configurations.cxf, configurations.runtime)

关于JavaToWS 错误 : java. lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39275659/

相关文章:

Android Studio 构建错误 : manifestMergerXXXX?

junit - CXF 单元测试

rest - 是否可以使用 MTOM 响应 CXF RESTful Web 服务

java - ANTLR 语言 - 未创建树(EOF - 语法错误)

java - 你如何从 Spring MVC 中的 Controller 内部获取 Jsp PageContext?

java - 在 Wildfly 中重新部署 war 时出现 ClassCastingException

java - Gradle 同步失败 : Could not load class 'org.jetbrains.kotlin.gradle.KotlinGradleModelImpl'

java - KeyListener 方法内的代码不起作用

groovy - 什么是运算符<<(小于两倍)在gradle中?

cxf - 在 "in Interceptor"中注入(inject) CXF JAXRS MessageContext