2013-05-20 92 views
1

我正在使用maven cxf-codegen-plugin從wsdl生成客戶端文件,但無法這樣做。無法使用wsdl2java和使用CXF的maven生成客戶端代碼

我想要掃描文件夾src/main/wsdl中的所有wsdl文件,並且應該在不同的文件夾中生成相應的客戶端。請幫忙。

我的pom.xml的是:

<build> 
    <finalName>someFileName</finalName> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-codegen-plugin</artifactId> 
       <version>2.2.3</version> 
       <executions> 
        <execution> 
         <id>generate-sources</id> 
         <phase>process-resources</phase> 
         <configuration> 
          <sourceRoot>src/main/java</sourceRoot> 
          <wsdlRoot>${basedir}/src/main/wsdl</wsdlRoot> 
         </configuration> 
         <goals> 
          <goal>wsdl2java</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
+0

你得到的錯誤是什麼? – Rajesh

+0

我沒有收到任何錯誤。但客戶端文件沒有生成 – Bhuvan

+0

當我從pom.xml中刪除時,我成功地能夠生成這些文件。但日食顯示錯誤標籤即「插件執行不覆蓋生命週期配置」,但建立是成功的 – Bhuvan

回答

3

這裏就是我如何與2.7.4版本做的,並具有不同的包創建的生成代碼:

<build> 
    <plugins> 
     <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/src/main/java</sourceRoot> 
         <wsdlOptions> 
          <wsdlOption> 
           <wsdl>${basedir}/src/main/wsdl/MyWsdl1.wsdl</wsdl> 
           <extraargs> 
            <extraarg>-client</extraarg> 
            <extraarg>-verbose</extraarg> 
            <extraarg>-p</extraarg> 
            <extraarg>urn:mycompany:myproduct1:v1_0=com.my.project.product1</extraarg> 
            <extraarg>-p</extraarg> 
            <extraarg>http://www.w3.org/2001/XMLSchema=com.my.project.common</extraarg> 
           </extraargs> 
          </wsdlOption> 
          <wsdlOption> 
           <wsdl>${basedir}/src/main/wsdl/MyWsdl2.wsdl</wsdl> 
           <extraargs> 
            <extraarg>-client</extraarg> 
            <extraarg>-verbose</extraarg> 
            <extraarg>-p</extraarg> 
            <extraarg>urn:mycompany:myproduct2:v1_0=com.my.project.product2</extraarg> 
            <extraarg>-p</extraarg> 
            <extraarg>http://www.w3.org/2001/XMLSchema=com.my.project.common</extraarg> 
           </extraargs> 
          </wsdlOption> 
         </wsdlOptions> 
        </configuration> 
        <goals> 
         <goal>wsdl2java</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 

在這裏你可以找到更多關於額外參數的地方: http://cxf.apache.org/docs/wsdl-to-java.html

爲WSDL文件夾的自動掃描,這工作不太好:

<configuration> 
         <sourceRoot>${project.build.directory}/generated/src/main/java</sourceRoot> 
         <wsdlRoot>${basedir}/src/main/wsdl</wsdlRoot> 
<includes> 
    <include>**/*.wsdl</include> 
</includes> 
</configuration> 

希望它能幫助!

+0

我不需要標籤 – Bhuvan

2

我意識到這是一個古老的問題,但我只是遇到了這個問題,所以我想回復他人的利益。您對<pluginManagement>標籤發表評論意見,請參閱here。但是對於說,在Eclipse中的錯誤:不屬於生命週期配置

插件執行

您需要安裝M2E連接器,用於構建輔助性Maven的插件(點擊錯誤,和Eclipse應該引導你進行安裝)

+0

這對我也適用。當我刪除標記時,雖然Eclipse給出了錯誤命令行,但我能夠生成源代碼。 :) – casper

0

我把plugins標籤內pluginManagement標籤和錯誤消失:

<pluginManagement> 
    <plugins> 
     <plugin> 

      .......................... 

     </plugin> 
    </plugins> 
</pluginManagement> 
+0

你怎麼寫標籤?標籤不會顯示,當我嘗試發佈 –

相關問題