0

詳細:

  • Maven - jaxws-maven-plugin バージョン 2.3 を使用した 3.3.1 と、ここに貼り付けられない wsdlUrl の目標 wsimport。
  • Java 1.7

maven pom コンテンツの例:

<plugin>
                <groupId>org.jvnet.jax-ws-commons</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <id>wsdla-exec-1</id>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <configuration>
                            <packageName>com.yourcompany.package</packageName>
                            <target>2.1</target>
                            <verbose>true</verbose>
                            <!-- Fix naming resolution due to ChangeOrderResponse duplicate stanza -->
                            <args>
                                <arg>-B-XautoNameResolution</arg>
                            </args>
                            <wsdlDirectory>src/main/resources</wsdlDirectory>
                            <wsdlFiles>
                                <wsdlFiles>service1.wsdl</wsdlFiles>
                            </wsdlFiles>
                            <wsdlLocation>/*</wsdlLocation>
                            <sourceDestDir>src/main/java</sourceDestDir>
                        </configuration>
                    </execution>
                    <execution>
                        <id>wsdla-exec-2</id>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <configuration>
                            <packageName>com.yourcompany.package</packageName>
                            <target>2.1</target>
                            <verbose>true</verbose>
                            <!-- Fix naming resolution due to ChangeOrderResponse duplicate stanza -->
                            <args>
                                <arg>-B-XautoNameResolution</arg>
                            </args>
                            <wsdlDirectory>src/main/resources</wsdlDirectory>
                            <wsdlFiles>
                                <wsdlFile>service2.wsdl</wsdlFile>
                            </wsdlFiles>
                            <wsdlLocation>/*</wsdlLocation>
                            <sourceDestDir>src/main/java</sourceDestDir>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

説明:

私はかなり長い間、Mule 内で wsdl からクライアント コードを生成してきました。これは常にかなり単純明快で生産的でしたが、ここで正しい方向へのポインターを取得できる障害にぶつかりました。

基本的に、wsdl から生成されたコードには、コンテナー クラスと同じ名前のネストされたクラスがあり、これにより、この wsdl を使用しているプロジェクトで赤色が生成されます。

私が知っていること:

コードを手動で viola に変更することも、wsimport を変更して静的ファイル (URL からコピー - すべての xsd を含む) を使用し、それらのファイルを変更することもできます。しかし、どちらも間違っているようです!

コード生成のプロセスを操作する方法はありますか、それともベンダーに変更を依頼する必要がありますか? あなたの考えは何ですか?

どうもありがとうございました。ご意見をお寄せいただきありがとうございます。

4

1 に答える 1