14

Maven スクリプトを使用して、WCF サービスと通信するために必要な Java コードを生成しています。通信が機能するようになり、Maven スクリプトとそれが生成するコードを、プロジェクトの残りの Java コードと統合する準備が整いました。

ただし、必要な正しいパッケージ名でコードを生成するように maven を取得することはできません。私がオンラインで読んだことから、タグを使用する必要があり、これが使用される可能性のある場所が 2 つあります。これらを入れる必要があると思われるスクリプトのセグメントを含めました。両方ともそこにあります。ただし、これらのタグは何も影響せず、コードはそれらがない場合と同じように生成されます

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <configuration>
                        <packageName>com.name.server.cxf</packageName>                      
                    <sourceRoot>src/com/server/cxf</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/com/server/cxf/code-generation/service.xml</wsdl>
                                <bindingFiles>
                                    <bindingFile>src/com/server/cxf/code-generation/javabindings.xml</bindingFile>
                                </bindingFiles> 
                                <extraargs>
                                    <extraarg>-validate</extraarg>
                                    <extraarg>-client</extraarg>
                                    <extraarg>-verbose</extraarg>
                                    <extraarg>-xjc-verbose</extraarg>
                                </extraargs>
                            </wsdlOption>
                        </wsdlOptions>
                        <verbose />
                    </configuration>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                    <configuration>
                        <packageName>com.name.server.cxf</packageName>      
                    </configuration>
                </execution>
            </executions>
        </plugin>

間違ったタグを使用している可能性がありますか、それとも間違った場所にある可能性がありますか?

4

3 に答える 3

23

タグ内のセクションに追加<extraarg>-p</extraarg><extraarg>com.name.server.cxf</extraarg>します。次の(わずかに異なるバージョン)は私にとってはうまくいきます。<extraargs><wsdlOption>

       <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/com/server/cxf/code-generation/service.xml</wsdl>
                                <bindingFiles>
                                    <bindingFile>src/com/server/cxf/code-generation/javabindings.xml</bindingFile>
                                </bindingFiles>
                                <extraargs>
                                    <extraarg>-validate</extraarg>
                                    <extraarg>-client</extraarg>
                                    <extraarg>-verbose</extraarg>
                                    <extraarg>-xjc-verbose</extraarg>
                                    <extraarg>-p</extraarg>
                                    <extraarg>com.name.server.cxf</extraarg>
                                </extraargs>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

または、コンテンツを含むファイルservice-optionsを作成しますsrc/com/server/cxf/code-generation/-p com.name.server.cxf

于 2012-03-21T18:59:00.863 に答える
2

これは私にとって非常にうまく機能します:

<wsdlOption>
                                <wsdl>src/main/resources/wsdl/my_wsdl.wsdl</wsdl>
                                <extraargs>
                                    <extraarg>-p</extraarg>
                                    <extraarg>http://services.demo.es/=com.my.package.demo1</extraarg>
                                    <extraarg>-p</extraarg>
                                    <extraarg>http://tempuri.org/=com.my.package.demo2</extraarg>
                                    <extraarg>-exsh</extraarg>
                                    <extraarg>true</extraarg>
                                    <extraarg>-client</extraarg>
                                    <extraarg>-wsdlLocation</extraarg>
                                    <extraarg></extraarg>
                                </extraargs>
                            </wsdlOption>
于 2015-08-13T06:31:42.950 に答える