質問

Maven2でAxis2クライアントを構築したい(リモートWebサービスにアクセスしているだけで、実装していない !)ために21MBのJARを追加したくない私のプロジェクト。 WSDLをADBで変換したときにコードをコンパイルするには、pom.xmlに何を入れる必要がありますか?

役に立ちましたか?

解決

注:この応答は、Aaron Digulla自身によって提供されました。以下は、彼自身の答えの正確なテキストです。)

maven2で、ADBクライアントを機能させるための最小限の依存関係セット(WSDLからJavaクラスを作成した場合のように「ADB」)は次のとおりです。

    <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>1.4.1</version>
    </dependency>
    <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>1.4.1</version>
    </dependency>

うーん...それを正しい答えとしてフラグを立てることはできないようです。誰かがこれをコピーして、彼の投稿にフラグを立てることができますか?

他のヒント

クライアントの最小jarは次のとおりです。

  • activation-1.1.jar
  • axiom-api-1.2.8.jar
  • axiom-impl-1.2.8.jar
  • axis2-adb-1.5.1.jar
  • axis2-kernel-1.5.1.jar
  • axis2-transport-http-1.5.1.jar
  • axis2-transport-local-1.5.1.jar
  • commons-codec-1.3.jar
  • commons-httpclient-3.1.jar
  • commons-logging-1.1.1.jar
  • httpcore-4.0.jar
  • mail-1.4.jar
  • neethi-2.0.4.jar
  • wsdl4j-1.6.2.jar
  • XmlSchema-1.4.3.jar

以下のSTAX jarはAxis2 1.5.1リリースの一部ではなく、JDKバージョンが6未満の場合に必要になります。

  • stax-1.2.0.jar
  • stax-api-1.0.1.jar

トランスポートも追加しなければならなかった

<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-adb</artifactId>
    <version>1.5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-transport-local</artifactId>
    <version>1.5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-transport-http</artifactId>
    <version>1.5.4</version>
</dependency>

作業中のクライアントの最小限の依存関係の概要


  • axiom-api-1.2.14.jar
  • axiom-impl-1.2.14.jar
  • axis2-adb-1.6.3.jar
  • axis2-kernel-1.6.3.jar
  • axis2-transport-http-1.6.3.jar
  • axis2-transport-local-1.6.3.jar
  • commons-codec-1.3.jar
  • commons-httpclient-3.1.jar
  • commons-logging-1.1.1.jar
  • httpcore-4.0.jar
  • mail-1.4.jar
  • neethi-3.0.2.jar
  • wsdl4j-1.6.2.jar
  • XmlSchema-1.4.7.jar

詳細を含む最小依存関係の下にリスト

クライアントスタブは、特定のWSDLに対して%AXIS2_HOME%\ bin \ WSDL2Javaツールで生成されたServiceClientクラスを使用します(生成には、クラスパス上のすべての軸jarが必要です。AXIS_HOMEを設定することで最も簡単に実現できます)

COMPILE 時にクライアントスタブに必要なクラス


  • axiom-api-1.2.14.jar-org.apache.axiom.om.OMElement、org.apache.axiom.soap.SOAPEnvelope、org.apache.axiom.soapのクライアントスタブがコンパイル時に必要です。 SOAPFactory、org.apache.axiom.om.OMNamespace
  • axis2-adb-1.6.3.jar-org.apache.axis2.databinding.ADBExceptionのクライアントスタブがコンパイル時に必要です
  • axis2-kernel-1.6.3.jar-org.apache.axis2.AxisFaultクラスのクライアントスタブがコンパイル時に必要です

RUN 時にクライアントスタブを正常に呼び出すために必要なクラス

  • axiom-impl-1.2.14.jar(このorg.apache.axiom.om.OMExceptionなし:機能「デフォルト」のメタファクトリが見つかりません。通常、これはaxiom-impl.jarがクラスパスにないことを意味します)
  • axis2-transport-http-1.6.3.jar(このorg.apache.axis2.deployment.DeploymentExceptionなし:org.apache.axis2.transport.http.CommonsHTTPTransportSender)
  • axis2-transport-local-1.6.3.jar(このorg.apache.axis2.deployment.DeploymentExceptionなし:org.apache.axis2.transport.local.LocalTransportSender)
  • commons-codec-1.3.jar(このjava.lang.NoClassDefFoundErrorなし:org / apache / commons / codec / DecoderException)
  • commons-httpclient-3.1.jar(このorg.apache.axis2.deployment.DeploymentExceptionなし:org / apache / commons / httpclient / HttpException)
  • commons-logging-1.1.1.jar(このjava.lang.NoClassDefFoundErrorなし:org / apache / commons / logging / LogFactory)
  • httpcore-4.0.jar(このjava.lang.NoClassDefFoundErrorなし:org / apache / http / HttpResponseFactory)
  • mail-1.4.jar(このjava.lang.NoClassDefFoundErrorなし:javax / mail / internet / ParseException)
  • neethi-3.0.2.jar(このjava.lang.NoClassDefFoundErrorなし:org / apache / neethi / PolicyComponent)
  • wsdl4j-1.6.2.jar(このjava.lang.NoClassDefFoundErrorなし:javax / wsdl / WSDLException)
  • XmlSchema-1.4.7.jar(このjava.lang.ClassNotFoundExceptionなし:org / apache / ws / commons / schema / XmlSchema)

org.apache.axis2.AxisFault:接続拒否:接続-&gt; Webサービスが起動していないか、他の何らかの理由でアクセスできない場合のみエラー

正確なバージョンに注意してください。ただし、バージョン間でパッケージの変更が発生する可能性があるため、動作は十分に汎用的であるため、上記のFQCNに言及しました。

軸バージョン- 1.6.3

Tomcatバージョン- Apache Tomcat / 7.0.64

サーブレットバージョン-3.0

java.runtime.version-1.7.0_79-b15

Axis2バージョン1.6.2は axis2-xmlbeans なしでは機能しません(ただし、これは axis2-wsdl2code- maven-plugin プラグインとデータバインディングフレームワークとしてのxmlbeans)。次のPOMがあります:

    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-kernel</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-adb</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-http</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-local</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-xmlbeans</artifactId>
        <version>1.6.2</version>
    </dependency>

クライアントがJava 6で実行されている場合、WSの消費にJAX-WSの使用を検討してください。 JAX-WSはバインディングにJAXB標準を使用し、クライアント用に1つの追加のjarは必要ありません。

実際には、 axis2-kernel axis-abd のサブ依存関係であるため、 axis-and 依存関係のみが必要です。 したがって、次のように要約できます。

<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-adb</artifactId>
    <version>1.5.1</version>
</dependency>

Axis2バージョン1.5.1では、Mavenモジュールが再構築されたようです。

My Groovyスクリプト(ADBバインディングを使用)には次の依存関係があります:

@Grapes([
    @Grab(group='org.apache.axis2', module='axis2-kernel', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-adb', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-local', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-http', version='1.5.1'),
])

これらにはロジックがあります。スタブを生成するときに代替バインディングフレームワークを使用したり、HTTPの代替トランスポートプロトコルを使用したりできます。

この回答

Gradle を使用している場合は、ここで不要なライブラリを除外します:

dependencies {

    ext.compileEx = { lib, exModules, exGroups ->
        compile (lib) {
            exModules.each { exclude module : "$it" }
            exGroups.each  { exclude group: "$it" }
        }
    }

    List axisExModules = [ 'axiom-compat', 'jaxen', 'apache-mime4j-core' ]
    List axisExGroups  = [ 'javax.servlet', 'commons-fileupload', 'org.apache.woden',
                           'javax.ws.rs', 'org.apache.geronimo.specs', 'org.codehaus.woodstox' ]
    compileEx ('org.apache.axis2:axis2-adb:1.6.3', axisExModules, axisExGroups)
    compileEx ('org.apache.axis2:axis2-transport-local:1.6.3', axisExModules, axisExGroups)
    compileEx ('org.apache.axis2:axis2-transport-http:1.6.3', axisExModules, axisExGroups)

}

ここはGradleフォーラムでの最初の投稿。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top