我正在使用Grails,并希望使用groovyws来调用Web服务。
但是我的groovyws.jar(0.5.2)有很多我无法解决的依赖。
是否有包含所有依赖性的jar?
注意:我尝试输入BuildConfig.groovy
,这个
dependencies {
'org.codehaus.groovy.modules:groovyws:0.5.2'
}
但是我收到了错误:
执行脚本时出错编译:加载器约束违规:何时 解决被覆盖的方法 “org.apache.xerces.jaxp.SAXParserImpl.getParser()Lorg / XML /萨克斯/分析器;” 类加载器(实例) org / codehaus / groovy / grails / cli / support / GrailsRootLoader) 当前类,org / apache / xerces / jaxp / SAXParserImpl及其 超类加载器(实例),有不同的类 签名
中使用的org / xml / sax / Parser类型的对象
答案 0 :(得分:1)
您可以通过以下方式手动排除xerces:
dependencies {
runtime('org.codehaus.groovy.modules:groovyws:0.5.2') {
exclude: 'xerces'
}
}
答案 1 :(得分: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,不知道为什么。
答案 2 :(得分:1)