web-dev-qa-db-ja.com

SOAP wsdlからクライアントjarを生成する

基本認証を備えたSOAP Webサービスを操作しようとしていますが、URL、ユーザー名、パスワードがあります。このWebサービスをJavaコードなので、jarファイルを作成する必要があります。

以下のURLを見ましたが、正しくフォローしたかどうかわかりません。 http://axis.Apache.org/axis2/Java/core/docs/userguide-creatingclients.html#choosingclienthttp://javasourcecodeetc.blogspot.com/2011/07/ convert-wsdl-to-Java-for-calling-soap.html

http://axis.Apache.org/axis2/Java/core/download.cgi (バイナリ配布のみ)からaxis2-1.6.2をダウンロードしました。

与えられたクライアントスタブがあります... build.xmlで使用すると言われていますが、build.xmlがどこにも見つかりませんでした.... Apacheをセットアップするためにインストールする必要があるものをすべて教えてください軸とアリ?ここでアリは何をしているのですか?

9
pret

Markの答えは機能しますが、私はMavenの人であり、最終的に出力jarをMaven化したいです。

Mavenでそれを行う方法は次のとおりです。

  1. WSDLをディレクトリにダウンロードします(例:mydir/MyWsdl.wsdl)。
  2. pom.xmlファイルを作成します(以下を参照)。
  3. mvn packageを実行します。

これがあなたが最終的にするものです

└── mydir
    ├── MyWsdl.wsdl
    ├── pom.xml
    └── target (add this dir to .gitignore)
        ├── generated-sources
        ├── mywsdl-0.1.0-SNAPSHOT.jar
        ├── mywsdl-0.1.0-SNAPSHOT-sources.jar
        └── mywsdl-0.1.0-SNAPSHOT-javadoc.jar

そして、pom.xmlファイルのソース

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>mywsdl</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <name>My WSDL client</name>
  <build>
    <plugins>
      <!-- Generates Java source files from the WSDL -->
      <plugin>
        <groupId>org.Apache.axis2</groupId>
        <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
        <version>1.6.2</version>
        <executions>
          <execution>
            <goals>
              <goal>wsdl2code</goal>
            </goals>
            <configuration>
              <packageName>com.example</packageName>
              <wsdlFile>MyWsdl.wsdl</wsdlFile>
              <!-- TODO: Update this file with new WSDL versions -->
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.Apache.axis2</groupId>
      <artifactId>axis2</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.ws.commons.axiom</groupId>
      <artifactId>axiom-api</artifactId>
      <version>1.2.14</version>
    </dependency>
    <dependency>
      <groupId>org.Apache.ws.commons.axiom</groupId>
      <artifactId>axiom-impl</artifactId>
      <version>1.2.14</version>
    </dependency>
  </dependencies>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
</project>
12
logan

Axis2は、Webサービスクライアントをサポートするいくつかの方法をサポートしています。最も一般的なアプローチは文書化されています ここ そしてWSDLファイルによって記述されたJavaメッセージを解析するSOAPコードの生成を含みます。

次の回答は、Webサービスを呼び出すいくつかの方法を説明しています。最後の部分では、Axis2によって生成され、ANTを使用してコンパイルされたクラスを使用するGroovyスクリプトについて説明します。

より詳しく

Wsdl2Javaプログラム(Axis2にバンドルされている)は、指定されたWSDLファイルに基づいてANTプロジェクトを生成します。

$AXIS2_HOME/bin/wsdl2Java.sh -d adb -s -o mydir -uri http://www.xmlme.com/WSShakespeare.asmx?WSDL

これにより、次のファイルが生成されます。

└── mydir
    ├── build.xml
    └── src
        └── com
            └── xmlme
                └── webservices
                    └── ShakespeareStub.Java

生成されたJavaコードを確認すると、WSDLファイルで定義されたXMLスキーマタイプに一致するJavaクラスが見つかり、シリアル化と逆シリアル化が簡単になります。 SOAPメッセージ。

「build.xml」ファイルには、生成されたJavaコードをコンパイルするロジックが含まれています。

cd mydir
ant

ビルドが実行されると、デフォルトで次のようにjarファイルが作成されます。

└── mydir
    ├── build
    │   ├── classes
    │   │   └── ..
    │   │       ..
    │   └── lib
    │       └── Shakespeare-test-client.jar
    ├── build.xml
    └── src
        └── com
            └── xmlme
                └── webservices
                    └── ShakespeareStub.Java

このjarファイルは、WebサービスにアクセスしたいJava(または その他の回答 の私の例のgroovyスクリプトを参照)に含めることができます。

7
Mark O'Connor