5

現在、IBM WebService フレームワークを Axis2 に置き換える作業を行っています。WSDL ファイルからコードを生成するときは、Maven プラグイン WSDL2Code を使用します。ただし、作成されたコードは常に間違っています。むしろ、パッケージ名は常に間違っているため、呼び出されたすべてのメソッドが呼び出されなくなります (さらに多くのエラーが発生し、Eclipse では最大 10.000 以上のエラーが発生します)。

実際に何が起こっているかの例を次に示します (これは、私がアドバイスを得るために特別に作成した例にすぎません)。

      <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
            <version>1.4.1</version>
            <executions>
                <execution>
                    <id>Test</id>
                    <goals>
                        <goal>wsdl2code</goal>
                    </goals>
                    <configuration>
                        <packageName>test.testpackage</packageName>
                        <databindingName>xmlbeans</databindingName>
                        <wsdlFile>${basedir}/wsdl/service.wsdl</wsdlFile>
                        <outputDirectory>${basedir}/testdirectory</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

理論的には、これにより、ディレクトリ testdirectory/test/testpackage に「test.testpackage」というパッケージ名のコードが生成されるはずです。ただし、代わりに、ディレクトリ testdirectory.src.test.testpackage に Src.test.testpackage というパッケージを作成します。パッケージ名とディレクトリの両方に常に「src」が追加されます。パッケージ名を src.test.testpackage に変更すると、src.src.test.testpackage というパッケージが生成されます。

もちろん、これは大きな問題につながります。なぜなら、生成されたすべてのファイルに次のエラーがあるからです。

私はここで完全に途方に暮れています。どこにでも「src」を追加する必要がある理由がまったく見つかりません。自動生成された build.xml ファイルに sourcedirectory = x/src (または同様のもの) という値が含まれていることに気付きましたが、この値に影響を与えるためにできることは何もありません (値を変更してからファイルを保存しようとしても違いはありません) 、明らかに、次回Mavenを実行したときに再び生成されるためです)。

ああ、私は通常、コマンド「mvn clean install」とバージョン 1.4.1 の WSDL2Code を使用するので、古い wsdl2code:wsdl2code バグの 1 つではありません。

ここで実際に何が間違っているのか誰かが知っているなら、私はそれを大いに感謝します.

前もって感謝します。

4

5 に答える 5

9

バージョン 1.4.1 には、実際には文書化されていない構成オプションがいくつかあります (org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo のソースを見てください)...

<flattenFiles>true</flattenFiles> を使用するだけで問題が解決するはずです:-)

于 2009-02-18T16:23:50.127 に答える
2

この質問はかなり古いので、まだ問題があるかどうかはわかりません...

代わりにAxistools Maven Pluginを使用することをお勧めします。

于 2009-05-06T09:09:10.780 に答える
0

そうではないと思います。たとえそうであったとしても、奇妙な問題は発生しないはずです - パスは testdirectory/src/test/testpackage で正しいため、パッケージ名に問題はありません。パッケージが想定していないディレクトリに配置されているため、問題が発生します-${basedir}/testdirectory/insert.package.here.divided.by./を想定していますが、代わりに${basedir}/testdirectory/srcを取得します/insert.package.here.divided.by./.

パスのその部分に src が存在しないようにする必要があります。

于 2008-12-02T13:29:05.020 に答える
0

これは、実際にあなたのために決定を下すmaven/axis2の(またはユーザー)「天才」に関連しています...これを参照してください:[Axis2メーリングリストエントリ] [1]

[1]: http://markmail.org/search/?q=[Axis2]+indrit#query:[Axis2メーリング リスト エントリ]%20indrit+page:1+mid:a34wbp7l3pljagsz+state:results

于 2009-09-29T10:22:33.220 に答える
0

たぶん 'src' は ${basedir} の一部ですか?

于 2008-12-02T12:44:23.130 に答える