2016-09-01 2 views
1

Я использую CXF JavaToWS для создания файла WSDL на основе кода Java. Я использую Gradle для сборки. Мой код Java ссылается на другой проект, и я связал их в своих файлах settings.gradle и build.gradle. Это хорошо работает.Ошибка JavaToWS: java.lang.NoClassDefFoundError

Проблема, которую я вижу, это JavaToWS, которая получает NoClassDefFoundError для одного из классов, который находится во вторичном проекте. Это похоже на то, что JavaToWS не имеет доступа к classpath проекта. Eclipse находит все, что ему нужно, и проект строится без ошибок. Это просто шаг JavaToWS, который терпит неудачу. Любые идеи о том, как я могу заставить JavaToWS увидеть мой путь к классам? Есть ли способ передать более чем один параметр аргументу «-cp»?

Вот мой JavaToWS шаг в моей gradle.build файле:

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'  
} 

ответ

0

Я был в состоянии решить эту проблему путем изменения пути к классам линии от:

classpath = configurations.cxf 

к:

classpath = files(configurations.cxf, configurations.runtime) 
Смежные вопросы