2

我正在使用 Grails 并希望使用 groovyws 来调用 Web 服务。

但是我的 groovyws.jar (0.5.2) 有很多我无法解决的依赖关系。

是否有包含所有依赖项的罐子?

注意:我试过 put in BuildConfig.groovy,这个

dependencies {
'org.codehaus.groovy.modules:groovyws:0.5.2'
}

但我收到错误:

执行脚本编译时出错:加载程序约束违规:解析覆盖方法“org.apache.xerces.jaxp.SAXParserImpl.getParser()Lorg/xml/sax/Parser;”时 当前类 org/apache/xerces/jaxp/SAXParserImpl 的类加载器(org/codehaus/groovy/grails/cli/support/GrailsRootLoader 的实例)及其超类加载器(的实例)具有不同的 Class 对象类型 org/xml/sax/Parser 在签名中使用

4

3 回答 3

1

您可以通过以下方式手动排除 xerces:

dependencies {
    runtime('org.codehaus.groovy.modules:groovyws:0.5.2') {
        exclude: 'xerces'
    }
}
于 2011-07-19T14:33:33.167 回答
1

GroovyWS 引入了 CXF,它再次引入了许多依赖项,其中一些与 Java 6 中已经存在的类冲突。如果使用 Java 6,您需要排除所有这些依赖项,以避免出现您提到的错误。

这是我的排除列表:

compile("org.codehaus.groovy.modules:groovyws:0.5.2") {
    excludes 'geronimo-servlet_2.5_spec', 'servlet-api', 'jaxb-xjc', 'jaxb-impl', 'xml-apis', 'saaj-impl', 'junit', 'slf4j-jdk14', 'xmlParserAPIs', 'jaxb-api', 'saaj-api', 'xmlbeans', 'jaxen', 'geronimo-stax-api_1.0_spec', 'geronimo-activation_1.0.2_spec', 'abdera-client', 'geronimo-activation_1.1_spec'
}

请注意,在 Ubuntu 上,您毕竟需要 jaxb-xjc 和 jaxb-impl,不知道为什么。

于 2011-07-19T18:12:00.137 回答
1

我发现:

非常感谢!

(搜索“groovyws 独立”)

注意:我在这里看到了这个提示。

于 2011-07-19T19:32:31.377 回答