32

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

4

9 に答える 9

30

クライアントの最小 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
  • メール-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
于 2010-08-27T03:27:20.663 に答える
16

(注:この回答は 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>

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

于 2008-11-26T18:01:59.917 に答える
14

トランスポートも追加する必要がありました

<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>
于 2011-04-18T21:50:04.663 に答える
12

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


  • 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
  • メール-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 なし: 機能 'default' のメタ ファクトリが見つかりません。これは通常、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.3

Tomcat バージョン - Apache Tomcat/7.0.64

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

java.runtime.version - 1.7.0_79-b15

于 2015-09-26T17:03:27.357 に答える
5

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>
于 2012-12-06T17:09:50.837 に答える
1

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

<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-adb</artifactId>
    <version>1.5.1</version>
</dependency>
于 2009-12-30T18:27:03.643 に答える
1

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

于 2008-12-02T10:26:45.670 に答える
1

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 に使用したりできます。

この回答のコード例

于 2010-04-02T00:17:23.640 に答える