web-dev-qa-db-ja.com

Axis2クライアントの最小クラスパスは何ですか?

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

31
Aaron Digulla

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

Maven2で、ADBクライアントを機能させるために設定された最小の依存関係(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>

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

13
Alex

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

  • アクティベーション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>
13
Renaud

要約すると、動作中のクライアントの最小の依存関係


  • 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を設定することで最も簡単に実現できます)

[〜#〜]コンパイル[〜#〜]時にクライアントスタブが必要とするクラス


  • 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:接続が拒否されました:接続->他の理由でWebサービスが稼働していないかアクセスできない場合のみエラー

正確なバージョンに注意してください。ただし、動作はバージョン間でパッケージの変更を条件として十分に一般的であるため、上記のFQCNについて言及しています。

軸バージョン- 1.6.

Tomcatバージョン- Apache Tomcat/7.0.64

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

Java.runtime.version-1.7.0_79-b15

9
Shew

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>
5
chrisjleu

Axis2バージョン1.5.1では、mavenモジュールが再構築されているようです。

私の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への代替トランスポートプロトコルを使用したりできます。

この例のコード answer

1
Mark O'Connor

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

<dependency>
    <groupId>org.Apache.axis2</groupId>
    <artifactId>axis2-adb</artifactId>
    <version>1.5.1</version>
</dependency>
1
Luís Duarte

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

1
Sun

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フォーラムの私の元の投稿です。

0
IvanRF