2

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 / sax/Parser;"を解決する場合 現在のクラスorg/apache / xerces / jaxp / SAXParserImplのクラスローダー(org / codehaus / groovy / grails / cli / support / GrailsRootLoaderのインスタンス)とそのスーパークラスローダー(のインスタンス)には、署名で使用される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 スタンドアロン」で検索)

注: このヒントはこちらで見ました。

于 2011-07-19T19:32:31.377 に答える
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 に答える