2

Web サービス クライアントの作成方法がわかりません。話は、Web サービスを呼び出す必要があるということです。私が理解しているように、Web サービスの正しいクラスを取得するには、どうにかして Web サービスを消費する必要があります。

私はこれを行うための多くの方法を調査しました。たとえば、スクリプトでそれらを消費してから、クラスをインポートしようとしました。

ただし、同僚は、既に Maven-2 を使用しているため、Maven プラグイン wsdl2code を使用してみることを勧めました。これを行うと機能しますが、私が見るように多くのジャンクファイルが作成されます. pom.xml ファイルに以下を追加しました。

<plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    <version>1.4</version>
     <executions>
         <execution>
            <goals>
                <goal>wsdl2code</goal>
            </goals>
            <configuration>
                <packageName>ws.client.test</packageName>
                <wsdlFile>http://localhost:8088/test?WSDL</wsdlFile>
                <databindingName>xmlbeans</databindingName>
                <outputDirectory>target/ws/test</outputDirectory>
            </configuration>
         </execution>
      </executions>
</plugin>

これによりファイルが正常に作成されますが、前述のように、他の WSDLconsume よりも多くのジャンク ファイル (xmlsoap/schemas/soap/encoding/...) または少なくとも多くの使用されていないファイル (私が見ているように) もあります。私は試した。

質問

  • Web サービスを利用するための一般的なガイドラインはありますか? WSDL ファイルは外部にあるため、変更される可能性もあります。そのため、これを Maven で自動的に行うとよいと思いました (ただし、WSDL が突然変更された場合、他の副作用が発生する可能性があります...)。

  • wsdl2code が適切な選択である場合、
    mvn clean の実行時にすべてのファイルが削除されるように、すべてのファイルを常にターゲット カタログに作成する必要がありますか?

  • より適した他のツールはありますか?

更新/編集
たとえば JAX-WS wsimport を使用して、必要な生成ファイルを取得します。ただし、これらを /target-folder に作成することで、同じプロジェクトでそれらにアクセスして、実際に Web サービスを呼び出したいと考えています。これは可能ですか?

4

2 に答える 2

3

Java-1.6 を使用している場合は、jax-ws を使用できます (使用する必要があります)。オンボードの Java ツールを使用すると非常に簡単です。追加の依存関係なしで使用できる Web サービス クライアントを作成する優れた maven プラグインがあります。http://jax-ws-commons.java.net/jaxws-maven-plugin/をご覧ください

詳細なチュートリアルについては、http://blogs.oracle.com/enterprisetechtips/entry/using_jax_ws_with_mavenを参照してください。

于 2011-02-02T11:02:00.350 に答える
1

CXF wsdl2java pluginを試すことができます。また、混乱を避けるために、生成されたソースを別のソース フォルダーに保存することをお勧めします。したがって、最終的に構成は次のようになります。

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>2.3.0</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>src/main/generated</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/main/resources/your-service.wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.4.1</version>
            <executions>
                <execution>
                    <id>auto-clean</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>src/main/generated</directory>
                        <includes>
                            <include>**/*.java</include>
                        </includes>
                        <followSymlinks>false</followSymlinks>
                    </fileset>
                </filesets>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.5</version>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>src/main/generated</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2011-02-02T11:14:34.487 に答える