0

cxf-codegen-plugin を取得して、wsdl ファイルからソースを生成しようとしています。しかし、Eclipse ルナでmvn generate-sourceを実行しても何も起こりません。プラグイン自体が正しく設定されていないようです。

私のpom.xml

        <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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.webservice</groupId>
    <artifactId>wsdlfirstwebservice</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>wsdlfirstwebservice Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <properties>
        <jdk.version>1.8</jdk.version>
        <cxf.version>3.0.4</cxf.version>
        <jaxb.version>2.2</jaxb.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>${cxf.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>${jaxb.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-xjc</artifactId>
            <version>${jaxb.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>3.0.4</version>
        </dependency>

    </dependencies>
    <build>
        <finalName>Wrsdlfirstwebservice</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>${jdk.version}</source>
                        <target>${jdk.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
                    </configuration>
                </plugin>


                <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>
                                <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
                                <wsdlOptions>
                                    <wsdlOption>
                                        <wsdl>src/main/resources/CustomerOrders.wsdl</wsdl>
                                        <bindingFiles>
                                            <bindingFile>src/main/resources/wsdl/binding.xml</bindingFile>
                                        </bindingFiles>
                                    </wsdlOption>
                                </wsdlOptions>
                            </configuration>
                            <goals>
                                <goal>wsdl2java</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>com.sun.xml.bind</groupId>
                            <artifactId>jaxb-impl</artifactId>
                            <version>${jaxb.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>com.sun.xml.bind</groupId>
                            <artifactId>jaxb-xjc</artifactId>
                            <version>${jaxb.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

私のWSDL

<?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="CustomerOrdersService"   
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:tns="http://www.wsdlfirstwebservice.com/customerorders"   
       targetNamespace="http://www.wsdlfirstwebservice.com/customerorders">
        <!-- Types -->
        <wsdl:types>
            <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:tns="http://www.wsdlfirstwebservice.com/customerorders"
                targetNamespace="http://www.wsdlfirstwebservice.com/customerorders">

                <xs:complexType name="order">
                    <xs:sequence>
                        <xs:element name="id" type="xs:integer"/>
                        <xs:element name="product" type="tns:product" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
                <xs:complexType name="product">
                    <xs:sequence>
                        <xs:element name="id" type="xs:integer" minOccurs="0"/>
                        <xs:element name="description" type="xs:string" minOccurs="0"/>
                        <xs:element name="quantity" type="xs:integer" minOccurs="0"/>                   
                    </xs:sequence>
                </xs:complexType>
                <xs:complexType name="getOrdersRequest">
                    <xs:sequence>
                        <xs:element name="customerId" type="xs:integer" minOccurs="0"/> 
                    </xs:sequence>
                </xs:complexType>
                 <xs:complexType name="getOrdersResponse">
                    <xs:sequence>
                        <xs:element name="order" type="tns:order" minOccurs="0" maxOccurs="unbounded"/> 
                    </xs:sequence>
                </xs:complexType>

                <xs:element name="getOrdersRequest" type="tns:getOrdersRequest"/>
                <xs:element name="getOrdersResponse" type="tns:getOrdersResponse"/>

            </xs:schema>
        </wsdl:types>

        <!-- Messages :
        These are analogous to method parameters and return types in java methods
        -->
        <wsdl:message name="getOrdersRequest">
            <wsdl:part name="parameters" element="tns:getOrdersRequest">
            </wsdl:part>
        </wsdl:message>
        <wsdl:message name="getOrdersResponse">
            <wsdl:part name="parameters" element="tns:getOrdersResponse">
            </wsdl:part>
        </wsdl:message>

        <!-- Port types 
        These are analogous to java methods.  Port types use message as input and/or output.
         -->
        <wsdl:portType name="CustomerOrdersPortType">
            <wsdl:operation name="getOrders">
                <wsdl:input name="getOrdersRequest" message="tns:getOrdersRequest"></wsdl:input>
                <wsdl:output name="getOrdersResponse" message="tns:getOrdersResponse"></wsdl:output>
            </wsdl:operation>
        </wsdl:portType>

        <!-- Bindings 
            This defines the message formats and protocol details for web service
         -->
         <wsdl:binding name="CustomerOrdersServiceSoapBinding" type="tns:CustomerOrdersPortType">
            <soap:binding style="document"  transport="http://schemas.xmlsoap.org/soap/http"/>
            <wsdl:operation name="getOrders">
                <soap:operation soapAction="" style="document"/>
                <wsdl:input name="getOrdersRequest">
                    <soap:body use="literal"/>
                </wsdl:input>
                <wsdl:output name="getOrdersResponse">
                    <soap:body use="literal"/>
                </wsdl:output>
            </wsdl:operation>
         </wsdl:binding>

         <!-- Service
         Tells customer how to consume the service
          -->
         <wsdl:service name="CustomerOrdersService">
            <wsdl:port name="CustomerOrdersPort" binding="tns:CustomerOrdersServiceSoapBinding">
                <soap:address location="http://localhost:8080/wsdlfirstwebservice/services/CustomerOrdersService"/>
            </wsdl:port>
         </wsdl:service>
     </wsdl:definitions>

コンソール出力

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T23:07:52+05:30) Maven ホーム: D:\JSPractice\wsdlfirstwebservice\EMBEDDED Java バージョン: 1.8.0_60、ベンダー: Oracle Corporation Java ホーム: C:\ Program Files (x86)\Java\jdk1.8.0_60\jre デフォルト ロケール: en_IN、プラットフォーム エンコーディング: Cp1252 OS 名: "windows 7"、バージョン: "6.1"、アーキテクチャ: "x86"、ファミリ: "dos" [INFO ] エラースタックトレースがオンになっています。[DEBUG] EMBEDDED\conf\settings.xml からグローバル設定を読み取る [DEBUG] C:\Users\D.Sama.m2\settings.xml からユーザー設定を読み取る [DEBUG] C:\Users\D.Sama のローカル リポジトリを使用する.m2\repository [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for C:\Users\D.Sama.m2\repository [INFO] Scanning for projects... [DEBUG] Extension realms for project com.webservice:
[generate-sources] [DEBUG] スタイル: レギュラー [DEBUG] =================================== ================================== [情報] [情報] ビルダー org.apache.maven の使用。スレッド数が 1 の lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder [情報]
[情報] - - - - - - - - - - - - - - - - - - - - - - - - ------------------------- [INFO] wsdlfirstwebservice Maven Webapp 0.0.1-SNAPSHOT の構築 [INFO] ---------- -------------------------------------------------- ------------ [デバッグ] ライフサイクルのデフォルト -> [検証、初期化、ソースの生成、ソースの処理、リソースの生成、リソースの処理、コンパイル、クラスの処理、テストの生成-ソース、プロセス テスト ソース、生成テスト リソース、プロセス テスト リソース、テスト コンパイル、プロセス テスト クラス、テスト、準備パッケージ、パッケージ、統合前テスト、統合テスト、後-統合テスト、検証、インストール、デプロイ] [DEBUG] ライフサイクル クリーン -> [プレクリーン、クリーン、ポストクリーン] [DEBUG] ライフサイクル サイト -> [プレサイト、サイト、ポストサイト、サイト展開] [デバッグ] === プロジェクトビルド計画 ==================================== =========== [DEBUG] プロジェクト: com.webservice:wsdlfirstwebservice:0.0.1-SNAPSHOT [DEBUG] 依存関係 (収集): [] [DEBUG] 依存関係 (解決): [] [DEBUG]リポジトリ (依存関係): [中央 (http://repo.maven.apache.org/maven2、リリース)] [DEBUG] リポジトリ (プラグイン) : [中央 ( http://repo.maven.apache.org/maven2、リリース)] [DEBUG] == ================================================== =================== [情報] ---------------------------- -------------------------------------------- [情報] ビルド成功 [情報] - - - - - - - - - - - - - - - - - - - - - - - - ------------------------ [情報] 合計時間: 0.101 秒 [情報] 終了時刻:

2016-09-11T14:27:19+05:30 [情報] 最終記憶: 4M/15M [情報]

4

1 に答える 1

1

build/pluginManagement/plugins だけでなく、build/plugins 部分にも cxf-codegen プラグインを配置する必要があります。

于 2016-09-11T11:24:20.477 に答える